" 자바가 제공하는 제어문을 학습하세요. "
의사 결정을 할 때 쓰인다. 조건의 참/거짓에 따라 서로 다른 작업을 수행할 수 있다.
조건식이 참인 경우 code 블럭을 실행
if(n % 2 == 0) {
System.out.println(n + "은 짝수입니다.");
}
조건식이 참이면 code1을 실행, 아니면 code2 실행
if(n % 2 == 0) {
System.out.println(n + "은 짝수입니다.");
} else {
System.out.println(n + "은 홀수입니다.");
}
import java.util.Scanner;
public class Grading {
public static void main(String[] args) {
char grade;
Scanner sc = new Scanner(System.in);
System.out.println("점수를 입력하세요(0~100): ");
int score = sc.nextInt();
if (score >= 90)
grade = 'A';
else if (score >= 80)
grade = 'B';
else if (score >= 80)
grade = 'C';
else if (score >= 70)
grade = 'D';
else
grade = 'F';
System.out.println("학점은 " + grade + "입니다.");
sc.close();
}
}
선택문이라 불린다. 변수나 식의 값이 다양한 분기를 통해 프로그램의 실행 흐름을 제어할 수 있게 해준다. 다양한 분기를 if나 else if 보다 쉽게 만들 수 있으며, break 키워드를 이용해 각 분기를 마친다. switch 문은 하나의 변수나 식에 담긴 값을 각 case 키워드로 선언된 값들과 비교해 둘이 일치하는 경우, 그 case의 코드 블럭을 실행시킨다. default 문은 생략 가능함.
import java.util.Scanner;
public class GradingSwitch {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char grade;
System.out.println("점수를 입력하세요(0~100): ");
int score = sc.nextInt();
switch (score / 10) {
case 10:
case 9:
grade = 'A';
break;
case 8:
grade = 'B';
break;
case 7:
grade = 'C';
break;
case 6:
grade = 'D';
break;
default:
grade = 'F';
}
System.out.println("학점은 " + grade + "입니다.");
sc.close();
}
}
어떤 동작을 반복시킬 때 사용한다.
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
// <for 문의 특이한 형태>
for (초기작업; true; 반복 후 작업) { // 반복 조건이 true이면 무한반복
.................
}
for (초기작업; ; 반복 후 작업) { // 반복조건이 비어 있으면 true로 간주하여 무한반복
.................
}
// 초기 작업과 반복 후 작업은 ','로 분리하여 여러 문장 나열 가능
for (i=0; i<10; i++, System.out.println(i)) {
.................
}
// 이처럼 변수 선언 및 초기화만 가능함(하나는 변수선언, 하나는 초기화같은 꼴은 불가)
for (int i = 0, j = 0, sum = 0; i <= 100; i++, j++)
sum += arr[i][j];
// for 문 내에 변수 선언
for (int i = 0; i < 10; i++) { // 변수 i는 for 문 내에서만 사용 가능
.................
}
조건식에서 사용하는 변수를 초기화 한다.
논리형 변수나 논리 연산을 사용한다. 조건식의 결과가 true이면 반복이 계속되고 false이면 for 문을 벗어난다. for 문의 작업 문장을 수행하기 전에 검사되므로 조건식이 처음부터 false 이면 바로 반복문을 벗어나게 된다.
for문의 작업문이 실행 된 후 실행됨.
for문이 반복되는 동안 반복 실행된다.
i = 0;
while(i < 10) {
System.out.println(i);
i++;
}
for 문과 달리, while 문에 조건식이 없으면 컴파일 오류가 발생한다. 또한 조건식에 사용되는 변수를 반드시 while 문 실행 전에 초기화시켜야 한다. 그리고 반복이 진행되면서 조건식이 false가 되어 반복문을 빠져나올 수 있다록 설계되어야 한다. 그렇지 않다면 무한 루프에 빠지게 되는 결과 발생. 처음부터 반복조건을 통과한 후 작업문을 수행한다.
i = 0;
do {
System.out.println(i);
i++;
} while(i < 10);
다른 반복문과 달리 do-while 문은 작업문 실행 후 조건식을 검사하므로 작업문이 최초 한 번은 반드시 실행된다.