if(조건){
.... 실행할 구문 ....
}
boolean is_korean = false; if( is_korean == true ) { System.out.println("한국 사람 입니다."); } else { System.out.println("한국사람이 아닙니다."); } // 값 자체가 참이므로 성립된다. if( is_korean ) { System.out.println("한국 사람 입니다!!"); } // "!"는 값을 부정한다. 참을 부정하므로 거짓이다. if( !is_korean ) { System.out.println("한국 사람이 아닙니다!!"); }
if문과 else 문 사이에 else if문으로 두 번째 조건,
세 번째 조건을 나열할 수 있다.
else if문은 필요한 만큼 나열할 수 있으며,
필요치 않을 경우 else문은 생략 가능하다.
if( 조건 ){
.. 실행할 구문 ...
} else if( 조건 ) {
.. 실행할 구문 ...
} else if( 조건 ) {
.. 실행할 구문 ...
} else if( 조건 ) {
.. 실행할 구문 ...
} else if( 조건 ) {
.. 실행할 구문 ...
} else {
.. 실행할 구문 ...
}
/* * 만약 point가 90 초과이고, 100 이하 이면 "A" 출력 * 만약 point가 80 초과이고, 90 이하 이면 "B" 출력 * 만약 point가 70 초과이고, 80 이하 이면 "C" 출력 * 나머지 "F" 출력 */ int point = 55; if( 90 < point && point <= 100 ) { System.out.println("A"); } else if( 80 < point && point <= 90 ) { System.out.println("B"); } else if( 70 < point && point <= 80 ) { System.out.println("C"); } else { System.out.println("F"); }
변수 값에 대한 경우의 수를 처리하는 switch문
switch문은 하나의 변수(기준 값)에 대한 여러가지
case를 정의하는 구문이다.
if문은 조건에 식(비교식, 부등식)이 사용될 수 있지만
switch문은 분기 조건이 반드시 일치하는 "값"에 대해서만
처리 가능하다.
switch( 기준값 ){
case 값1:
.. 실행될 구문 ..
break;
case 값2:
.. 실행될 구문 ..
break;
case 값3:
.. 실행될 구문 ..
break;
default:
.. 모든 경우에 충족되지 않을
경우 실행 ..
break;
}
char grade = 'B'; switch( grade ) { case 'A': System.out.println("91~100점 사이 입니다."); break; case 'B': System.out.println("81~90점 사이 입니다."); case 'C': System.out.println("71~80점 사이 입니다."); break; default: System.out.println("70점 이하입니다."); }
for문은 사람이 직접 처리하기에 부담스러운
반복적인 작업을 처리하기에 매우 용이하다.
1+2+...+9+10 = 55
for( 초기식; 조건식; 증감식 ){
... 반복적으로 동작할 구문 ..
}
- 초기식:최초로 초기식을 설정한다.
- 조건식:초기식을 설정한 다음에는 조건식을 판단한다.
- 만약 조건식이 참이라면 반복적으로 동작할
구문을 1회 수행한다.
- 반복 구문을 수행한 수, 증감식으로 이동한다.
- 증감식을 수행한 후, 다시 조건식으로 이동한다.
여전히 조건식이 참이라면 반복수행을 처리하고,
그렇지 않다면 for문을 종료한다.
// 1부터 10까지의 누적된 합 // 1 + 2 + ... + 9 + 10 = 55 int sum = 0; // 초기식; 조건식; 증감식 for(int i = 1; i <= 10 ; i++) { //sum = sum + i; sum += i; System.out.println("sum : " + sum); } System.out.println("합은 : " + sum);
while문 역시 for문과 마찬가지로 반복적인 처리를 수행하는
문법이다.
for문은 초기식, 조건식, 증감식을 모두 내장하는 반면,
while문은 조건식만을 내장하기 때문에 초기식과 증감식을
외부에 따로 정의해 주어야 한다.
초기식;
while( 조건식 ){
... 반복적으로 동작할 구문 ..
증감식;
}
// 1 + 2 + ... + 99 + 100 int sum = 0; int i = 1; while( i <= 100 ) { sum += i; i++; } System.out.println(sum);
조건의 판별을 나중에 수행하는 반복문 형태
초기식을 설정한 후 do{...} 안의 문장을 우선적으로 1회
실행하고 조건을 판별하므로,
조건이 참이아니더라도 최소 1회는 실행된다.
초기식;
do{
.. 반복적으로 동작할 구문 ..
증감식;
}while( 조건식 );
// 1 + 2 + .. + 100 int sum = 0; int i = 1; do { sum += i; i++; }while( i <= 100 ); System.out.println(sum);
증감식이 설정되지 않거나, 증감식이 수행되더라도 조건식이
거짓이 되지 않은 형태
조건식이 항상 참이므로, 반복문이 종료되지 않는다.
프로그램이 PC의 자원을 매우 많이 사용하게 되므로,
시스템 다운을 발생시킬 수 있다.
for문의 무한 루프 예
for( int i = 0; i<=100; i-- ){
System.out.println(i);
}
while문 무한 루프 예
while( true ){
System.out.println("hello");
}