for문은 사람이 직접 처리하기에 부담스러운 반복적인 작업을 처리하기에 매우 용이하다.
ex) 1+2+3+4+5+6+7+8+9+10+ ... + 1000 = ?
형식
for( 초기식; 조건식; 증감식 ){
...반복적으로 동작할 구문...
}
초기식 : 최초로 초기식을 설정한다.
조건식 : 초기식을 설정한 다음에는 조건식을 판단한다.
만약 조건식이 참이라면 반복적으로 동작할 구문을 1회 수행한다.
반복 구문을 수행한 수, 증감식으로 이동한다.
증감식을 수행한 후, 다시 조건식으로 이동한다.
여전히 조건식이 참이라면, 반복 수행을 처리하고 그렇지 않다면 for문을 종료한다.
while문 역시 for문과 마찬가지로 반복적인 처리를 수행하는 문법이다.
for문은 초기식, 조건식, 증감식을 모드 내장하는 반면에 while문은 조건식만을 내장하기 때문에 초기식과 증감식을 외부에 따로 정의해주어야한다.
초기식;
while(조건식){
...반복적으로 동작할 구문...
증감식;
}
초기식;
do{
...반복적으로 동작할 구문...
증감식;
}while(조건식);
자신보다 하위 블록으로는 침투할 수 있다.
int num = 100;
if( num == 100 ){
System.out.println(num);}
-----------------------------------
int num = 100;
for( int i = 0; i<10; i++ ){
System.out.println(num+i);
}
자신이 선언된 블록 밖으로는 빠져나갈 수 없다.
int num = 100;
if (num ==100){
int result = num +100;
}
System.out.println(result);
=> 마지막 문장에서 error가 발생하며, reslt라는 변수는 블록괄호 안에서만 사용 가능하다.
사용 불가능의 예시2
for(int i= 0; i<10; i++{
...
}
System.out.println(i);
=> i가 for문을 위한 괄호 안에서 사용되었으므로 사용 불가능하다.
블록 안에서 선언된 변수는 블록 밖에서 존재하는 동일한 이름의 변수와는 이름만 동일할 뿐, 다른 값으로 인식된다.
int target = 100;
if( target == 100){
int num = target + 100;
} else {
int num = target - 100;
}
=>Error발생 없이 num을 출력하게 되면 200이 출력된다.
break : 반복문 안에서 break 키워드를 만나면 반복을 강제로 종료한다.
continue : 실행 흐름이 증감식으로 강제로 이동한다.