If
if
if(조건식){
수행문; // 조건식이 '참'인 경우에(조건에 맞는 경우) 수행문이 수행됨
} // 조건식이 '참'이 아니면(조건에 맞지 않는 경우) 수행문이 수행되지 않음
if - else
if( 조건식) {
수행문1; // 조건식이 '참'인 경우에 수행됨
}
else{
수행문2; // 조건식이 '참'이 아닌 경우에 수행됨
}
if-else if-else
하나의 상황에 대한 조건이 여러개로 나뉘고 각 조건에 다른 수행이 이루어져야 할 경우 사용
각 조건은 상호 배타적. 즉, 하나의 조건식이 만족하면 다른 조건식은 비교하지 않음
if(조건식1){
수행문1; // 조건식1이 '참'인 경우 수행하고 전체 조건문을 빠져나감
}
else if(조건식2){
수행문2; // 조건식2이 '참'인 경우 수행하고 전체 조건문을 빠져나감
}
else if(조건식3){
수행문3; // 조건식3이 '참'인 경우 수행하고 전체 조건문을 빠져나감
}
else{
수행문4; // 위 조건이 모두 해당되지 않는 경우 수행됨 (디폴트 조건)
}
수행문5; // if-else if-else 문이 끝나면 수행됨
public class ConditionTest {
public static void main(String[] args) {
int age;
Scanner scanner=new Scanner(System.in);
age=scanner.nextInt();
if (age<=13) {
System.out.println("초등학교에 갑니다.");
}else if (age<=16){
System.out.println("중학교에 갑니다.");
}else if (age<=19){
System.out.println("고등학교에 갑니다.");
}else
System.out.println("대학교에 가거나 청년이 됩니다.");
}
}
13
초등학교에 갑니다.
Switch
if - else if - else 문을 사용할 때 복잡하고 번거로운 부분을 가독성 좋게 구현
비교 조건이 특정 값이나 문자열인 경우 사용
break 문을 사용하여 각 조건이 만족되면 switch 블럭을 빠져나오도록 함
자바 14부터 좀 더 간결해진 표현식이 지원 됨 ( break 사용하지 않음 )
Example
public class SwitchTest {
public static void main(String[] args) {
String medal = "Gold";
switch(medal) {
case "Gold":
System.out.println("금메달 입니다.");
break;
case "Silver":
System.out.println("은메달 입니다.");
break;
case "Bronze":
System.out.println("동메달 입니다.");
break;
default:
System.out.println("메달이 없습니다.");
break;
}
}
}
금메달 입니다.
While
while(조건식){
수행문; // 조건식이 '참'인 경우에(조건에 맞는 경우) 수행문이 반복됨
}
public class WhileTest {
public static void main(String[] args) {
int num=1;
int sum=0;
while(num<=10) {
sum+=num;
num++;
}
System.out.println(num);
System.out.println(sum);
}
}
11
55
do while
do(조건식){
수행문; // 조건식이 '참'인 경우에(조건에 맞는 경우) 수행문이 반복됨
}while(조건식);
import java.util.Scanner;
public class DowhileTest {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int input;
int sum=0;
do {
input=scanner.nextInt();
sum+=input;
}while(input!=0);
System.out.println(sum);
}
}
1
10
100
1000
0
1111
For
public class ForTest {
public static void main(String[] args) {
int sum=0;
int num=0;
for(;num<=10;num++) {
sum+=num;
}
System.out.println(num);
System.out.println(sum);
}
}
11
55
public class NestedForTest {
public static void main(String[] args) {
int dan;
int time;
for (dan=2;dan<=9;dan++) {
for (time=1;time<=9;time++) {
System.out.println(dan+"x"+time+"="+dan*time);
}
System.out.println();
}
}
}
2x1=2
2x2=4
2x3=6
2x4=8
...
9x7=63
9x8=72
9x9=81
Break
감싸고 있는 제어문의 블록을 빠져 나오는 기능 (switch문 에서도 사용)
반복문에서는 주로 조건문(if)와 같이 사용하여 조건에 해당되는 경우 반복 수행을 멈추고 반복문 외부로 수행이 이동
여러 반복문이 중첩되어 있는 경우엔 break 문이 포함되어 있는 반복문만 빠져 나옴
Example
public class BreakTest {
public static void main(String[] args) {
int sum=0;
int num;
for(num=1;;num++) {
sum+=num;
if (sum>100) {
break;
}
}
System.out.println(sum);
System.out.println(num);
}
}
105
14
Continue
public class ContinueTest {
public static void main(String[] args) {
int i;
for (i=0;i<100;i++) {
if (i%3!=0){
continue;
}
System.out.println(i);
}
}
}
0
3
6
...
93
96
99