기본적인 실행 흐름은 위에서부터 아래이다. 이러한 실행 흐름을 개발자가 원하는 방향으로 바꿀수 있도록 해주는 것이 흐름 제어문(=제어문)
조건의 결과에 따라 블록 실행 여부가 결정된다. 중괄호 {} 블록은 여러개의 실행문을 하나로 묵기 위해 작성되는데, 실행 해야할 문장이 하나 밖에 없다면 생략 할 수도 있다. (버그 발생의 원인이 되기도 하고, 가독성을 위해 추천하지는 않는다)
int jamsu = 90;
if(jamsu >= 90) {
System.out.prinln("점수가 90 이상이네요");
System.out.println("A등급입니다");
}
int jamsu = 90;
if(jamsu >= 90) {
System.out.prinln("점수가 90 이상이네요");
System.out.println("A등급입니다");
} else {
System.out.println("점수가 90 미만이네요");
System.out.println("B등급입니다");
}
조건이 여러개인 if 문도 있다. else if 문의 갯수는 제한없으며, 여러개의 조건식 중 true 가 되는 블록만 실행하고 전체 if 문을 벗어난다. 모든 조건식이 false 일 경우 else 블록을 실행 한뒤 if 문을 빠져나온다.
int jamsu = 90;
if(jamsu >= 90) {
System.out.prinln("점수가 90 이상이네요");
System.out.println("A등급입니다");
} else if(jamsu >=85){
System.out.println("점수가 90 미만이네요");
System.out.println("B등급입니다");
} else if(jamsu < 85) {
System.out.println("점수가 85 미만이네요");
System.out.println("C등급입니다");
} else {
System.out.println("아까워요");
}
int jamsu = 90;
if(jamsu >= 90) {
System.out.println("점수가 90 이상이네요");
if(jamsu >= 95) {
System.out.println("A등급입니다");
} else {
System.out.println("A-등급입니다");
}
} else{
System.out.println("A는 아니네요");
int num = (int)(Math.random()*6) + 1;
// 1~6까지의 숫자 중 랜덤으로 숫자 튀어나옴
switch(num) {
case 1:
System.out.println("1번");
break;
//break = 더 이상 다른 case 실행하지 말고 종료
case 2:
System.out.println("2번");
break;
case 3:
System.out.println("3번");
break;
case 4:
System.out.println("4번");
break;
case 5:
System.out.println("5번");
break;
default:
System.out.println("6번");
break;
}
어떤 작업(코드들)이 반복적으로 실행되도록 할 때 사용
for(int i=0; i<10; i++)
//초기화; 조건식; 증감식;
1부터 100까지 합을 출력하는 식을 작성해보자
int sum = 0;
for(int i=1; i<=100; i++){
sum += i;
}
System.out.println("합 : " + sum);
int i = 1;
while (true){
//무한반복한다
System.out.println(i);
i++;
}
1부터 100까지 합을 출력하는 식을 while문으로도 작성해보자
int sum = 0;
while(i <= 100) {
sum += i;
i++;
}
System.out.println("합 : " + sum)
Scanner sc = new Scanner(System.in);
String inputString;
do {
System.out.print(">");
inputString = sc.next();
System.out.println(inputString);
}while( ! inputString.equals("q");
//while 뒤에는 실행 블록이 아니라 세미콜론 (;)
실행 중지. 조건을 만족한 뒤 더 이상 반복하지 않아도 될 때 사용한다.
//switch-case 문 예제에서 쓰였던 break 예시
switch(num) {
case 1:
System.out.println("1번");
break;
//break = 더 이상 다른 case 실행하지 말고 종료
case 2:
System.out.println("2번");
break;
.
.
.
}
break가 조건 만족시 반복을 중지시킨다면 continue는 조건 만족시 그대로 지나가라는 뜻이다. 이후의 문장을 실행하지 않고 다음 반복으로 넘어가는 것.
for(int i=0; i<=10; i++) {
if(i % 2 == 0) { //만약 홀수인경우
continue;
}
System.out.println(i);
//print 문 출력 안함
}