while (조건식) {

반복 실행할 문장;

{

 

 

조건식이 true인 동안 블럭내 문장을 반복한다.

이 때, 반복 횟수를 지정해주지 않으면 무한 반복된다.

 

For문과 달리 초기값, 증감식을 명시할 자리가 형식적으로 지정되어 있지 않다.

 

하지만 While문 바로 위 쪽에 초기값을, 증감식은 마지막 자리에 명시 해준다.

그래야 원하는 결과가 도출된다.

 

 

 

예제 1

		// while (조건식) {반복 실행할 문장;}
		// '사랑해요' 10번 출력
		
		int i = 1 ;							
		while (i<=10)						
		{System.out.println(i+". 사랑해요");
		++i;}

 

내가 했던 실수

 

1)  증감식을 쓰지 않아 무한 출력됐다.

2)  i를 0으로 지정해서 0부터 10까지 11번 출력됐다.

 

 

 

 

예제 2

		// 키보드로 입력한 구구단 1개단 while 문으로 출력
		
		int i = 1 ;			// 초기값
		
		System.out.println("1~9 사이의 정수를 입력하세요");
		Scanner sc = new Scanner(System.in) ;
		int dan = sc.nextInt() ;
		
		while (i<=9) { // 조건식
			System.out.println(dan+" * "+i+" = "+dan*i); //출력값
			i++; //증감식
		}

 

 

 

 

예제 3

 

구구단을 중첩 while문으로 2단부터 9단부터 출력하기

 

 

 

여기서 내가 했던 실수는 int n=1; 을 잘못된 위치에 선언한 것이었다.

 

n을 루프 돌릴 while문 바로 위쪽에 선언했어야 했는데,

int dan=2;를 선언하면서 바로 아래에 선언한 것이 내가 한 실수다.

 

이런식으로 선언해버리면 2단만 출력되고 3단부터는 내용이 출력되지 않고 타이틀만 나온다.

 

//잘못된 위치에 선언했을 때

		int dan=2;
		int n=1; 	//여기에 선언하면 안된다
		while(dan<=9) {
			System.out.println("["+dan+"단]");
			System.out.println("----------");
			while (n<=9) {
				System.out.println(dan+"*"+n+" = "+dan*n);
				n++;
			}
			dan++;
			System.out.println();
		}

 

잘못된 결과 ㅠㅠ

 

 

 

올바른 위치에 선언했을 때

 

		int dan=2;
		while(dan<=9) {
			System.out.println("["+dan+"단]");
			System.out.println("----------");
			int n=1;	// 올바른 위치
			while (n<=9) {
				System.out.println(dan+"*"+n+" = "+dan*n);
				n++;
			}
			dan++;
			System.out.println();
		}

 

 

제대로 된 결과

 

 

 

 

 

반드시 한꺼번에 선언하지 말고 변수를 사용하는 while문이 시작되기 바로 직전에 선언해준다.

그러면 올바른 결과가 나온다

'자바' 카테고리의 다른 글

보조 제어문 Break (2022-06-24)  (0) 2022.06.24
반복문 Do while문 (2022-06-23)  (0) 2022.06.23
반복문 For (2022-06-23)  (0) 2022.06.23
조건문 Switch, 보조 제어문 Break (2022-06-23)  (0) 2022.06.23
난수 발생 (2022-06-23)  (0) 2022.06.23

+ Recent posts