게으른 나르의 코딩

반복문(for문(중첩,if추가), while문(중첩,if추가)) do~while 본문

Languages/Java

반복문(for문(중첩,if추가), while문(중첩,if추가)) do~while

개발자 나르 2021. 6. 26. 18:02
반응형

for문의 기본 문법

for(초기화식; 조건식; 증감식) {

     반복을 실행할 코드

}

더보기

ex)

for(int i = 1; i < 4; i++) {

     System.out.println(i);

}

출력값은 1 2 3 이 나온다.

조건식이 참이면 코드가 반복적으로 실행된다.

조건식이 거짓이면 코드 자체가 실행이 안되고 error가 난다.

증감식은 i++이나 ++i나 같다.

 

총합변수를 항상 0으로 초기화를 시켜야 되고, 총합변수의 반복을 출력하고 싶다면 반복을 실행할 코드에 넣고 총합만 원한다면

for문 바깥쪽에 출력값으로 총합변수를 넣어야한다.

더보기

ex)

int sum = 0;

for(int i = 1; i<4; i++) {

     sum+=i;

}

System.out.println(sum);

 

이 증감식인 i++는 1씩 증가하지만 증가양이나 감소양을 조절할 수도 있다.

i+=2

i-=2

이런식의 표현으로 곱셈 나눗셈도 가능하다.

 

for문 중첩

바깥 for문을 기준으로 안쪽 for문이 도는 방식이다.

기본 식

for(초기화식;조건식;증감식) {

     for(초기화식2; 조건식2; 증감식) {

          반복을 실행할 코드

     }

}

바깥 for문 한번에 안쪽 for문이 한바퀴 도는 방식이기 때문에 바깥 for문은 행, 안쪽 for문을 열이라고 생각하면된다.

안쪽 for문을 2개를 이용해서 조건을 2번 주는 것도 할 수 있다.

더보기

ex) 2 3단의 구구단을 만들어본다고 예시를 든다.

for(int i = 2;i < 4; i++) {               //i는 2와 3이 반복된다.

     for(int j=1; j < 10;j++) {          //i가 2일 때 j는 1~9까지 반복을한다. i가 3일 때 j는 1~9까지 반복을 한다.

          System.out.println(i + " * " + j + " = " + i*j)

     }

}

출력값을 봤을 때

2 * 1 = 2

2 * 2 = 4

.

.

.

3 * 9 = 27

이렇게 세로줄인 행은 바깥쪽 for문이 해당되고, 가로줄인 열은 안쪽 for문이 해당된다.

i=2 j=1,2,3,4,5,6,7,8,9

i=3 j=1,2,3,4,5,6,7,8,9

 

 

가변적인 for문 중첩

말 그대로 조건식이 변한다는 말로 바깥 for문의 초기화된 변수를 이용해서 안쪽 for문의 값이 나오도록 조건식의 조건을 줘야하는 방식

더보기

ex)

for(int i = 0; i<5;i++) {

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

          System.out.print("*");

     }

     System.out.println();

}

출력값은

*

**

***

****

*****

이렇게 나온다.

 

for문 안에 if문

조건식의 조건에서 조건문을 더 추가해서 값을 세분화 시킬 수 있는 방식이다.

더보기

ex)

for(int i = 1; i < 101; i++) {

     if(i%5 == 0) {

           System.out.println("5의 배수는 : " + i);

     }

     else

          System.out.println("나머지의 값들" + i);

}

이런식으로 5의 배수들과 나머지의 값들도 출력이 가능하게 조건을 더 걸어줄 수 있다.

while문

반복문의 종류 중에 하나인 while 문의 기본식

더보기

ex)

int i = 5;               //초기화식

while(i<10) {         //조건식

     System.out.println(i);

     i++;              //증감식

}

이런 식으로 되어있는데 이제 증감식이 전위연산자인지 후위연산자인지에 따라서 값이 나뉠 수 있다.

총합변수를 구할 때 for문같은 경우에는 ()안에 증감식이 들어있어서 전위든 후위든 똑같은 값이 나왔지만 while문에 같은 경우에는 {}안에 증감식이 들어감으로 i++같은 경우 대입을 먼저하고 증감을 나중에 하기 때문에 {}밖에 있는 출력값에 영향을 줄 수 있어서 만약 이걸 실행하고 내가 원하는 값이 안나오게 된다면 이 부분을 잘 생각해서 살펴볼 필요가 있다.

 

for문과 while문의 차이점

for문에는 조건식의 true가 없지만 while문에는 true를 적을 수 있다. 그 차이는 while문은 계속 무한히 반복을 해서 for문은 조건식의 범위가 주어지기 때문에 그 범위가 주어진 곳까지만 반복을 하지만 while문 같은 경우는 break를 안 써줄 경우 무한반복을 하게된다. 그렇기에 상황마다 고려하면서 for문과 while문을 사용해야한다.

 

do~while문

반복문 중에서 거의 안쓰는 반복문이다. 이 반복문의 특징은 조건식이 제일 나중에 쓰기 떄문에 {}안에 있는 식부터 먼저 실행이 된다.

그래서 조건식이 false여도 {}안에 있는 실행문은 실행이 된다.

기본식

변수 초기화;

do {

     실행문;

     증감식;

} while(조건식);

반응형
Comments