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 |