for 반복문

 

for 반복문 없이 10번 반복해서 출력 하려면 아래와 같이 코드가 쓰여진다.

 


System.out.println("1 - 헬로우 월드");
System.out.println("2 - 헬로우 월드");
System.out.println("헬로우 월드");
System.out.println("헬로우 월드");
System.out.println("헬로우 월드");
System.out.println("헬로우 월드");                                        ==>비효율적이다.
System.out.println("헬로우 월드");                                              ->만번 헬로우월드 출력 사실상 불가
System.out.println("헬로우 월드");
System.out.println("헬로우 월드");
System.out.println("10 - 헬로우 월드");

 

for 반복문 기본형식

 

for (    초기식 ㄱ  ;    조건식 ㄴ  ;   증감식 ㄷ) {//반복문
System.out.println("헬로우 월드");
}

 

 

for (int i = 1; i <= 10; i++) {
System.out.println(i + "-헬로우 월드");
}

 

ㄱ -> ㄴ(0<10) 조건 참인지 거짓인지 판별해서 true이면 -> {}블럭실행 -> ㄷ 으로 인해 i가 1이됨
        ㄴ(1<10) 조건 참인지 거짓인지 판별해서 true이면 -> {}블럭실행 -> ㄷ 으로 인해 i가 2가됨
        ㄴ(2<10) 조건 참인지 거짓인지 판별해서 true이면 -> {}블럭실행 -> ㄷ 으로 인해 i가 3이됨
                :
                :
        ㄴ(9<10) 조건 참인지 거짓인지 판별해서 true이면 -> {}블럭실행 -> ㄷ 으로 인해 i가 10이됨
        ㄴ(10<10) false
//헬로우 월드

 

 

 

for문에서 조건식 자리가 없다면 무한루프가 발생한다.

 

 

 

for문에서 i를 선언할때 블록의 범위를 확인하고 선언해야한다.

블록의 범위에 따라 지역변수가 선언되는 범위가 달라져

코드의 에러가 발생할 수 도 있다.

 

 

조건에 따른 출력결과 확인해 봐야한다.

 

 

 

while문

 

for    - 반복하는 횟수가 정해져 있을때

while - 반복 조건이 정해져 있을때

 

 

 

while문 기본형식

 

while (condition) {
//조건이 참일동안 반복해서 {   }블록을 처리
}

 

 

 

 

 

 

while 조건식에 ++증감 연산자가 사용될때 결과

(6가지 예시)

 

[1] 2+3+4+5+6+7+8+9+10+=54

 

int i = 1, sum = 0;

while( ++i <=10) {
sum+=i;

System.out.print( i +"+");

}

System.out.println("="+sum);

 

 

[2] 2+3+4+5+6+7+8+9+10+11+=65

 

int i = 1, sum = 0;

while( i++ <=10) {
sum+=i;

System.out.print( i +"+");

}

System.out.println("="+sum);

 

 

[3] 2+3+4+5+6+7+8+9+10+11+=55 전위형

 

int i = 1, sum = 0;

while( i <=10) {
sum+=i;

System.out.print( ++i +"+");

}

System.out.println("="+sum);

 

 

[4] 1+2+3+4+5+6+7+8+9+10+=55 후위형

 

int i = 1, sum = 0;

while(++i <=10) {
sum+=i;

System.out.print( i++ +"+");

}

System.out.println("="+sum);

 

 

[5] 1+2+3+4+5+6+7+8+9+10+=55

 

int i = 1, sum = 0;

while(i <=10) {
sum+= i++;

System.out.print( i++ +"+");

}

System.out.println("="+sum);

 

 

[6] 2+2+3+4+5+6+7+8+9+11+=65

 

int i = 1, sum = 0;

while(i <=10) {
sum+= ++i;

System.out.print( i++ +"+");

}

System.out.println("="+sum);

 

 

do ~ while문

 

do~while 문은 조건식의 참 거짓을 판단하기 전에 '최소한 한 번'은 무조건 {}블록을 처리한 후에 조건식을 묻는다.

 

int i = 1, sum = 0;

 

System.out.print("i 값을 입력?");

Scanner sc = new Scanner(System.in);

i = sc.nextInt();

 

do {
System.out.println("헬로우 월드");
i++;
} while (   i<=10   ); //12 <=10 거짓

 

 

continue문

 

int sum = 0;
for (int i = 1; i <= 10; i++) {

if(   i%2 ==0   ) continue;                                  //=> continue문을 만나면  
sum+=i;                                                                밑에 코딩을 실행하지 않고 바로 증감식으로 넘어간다.
System.out.print(i+"+");
} //for

 

 

복사했습니다!