while 문과 do-while 문의 차이점
while 문
조건이 참인 경우에만 문장을 실행합니다.
조건이 계속 참이라면 문장은 계속 실행하게 됩니다.
만약 첫 조건이 거짓인 경우 while 문은 실행되지 않습니다.
while (조건) {
문장;
}
do while 문
조건이 거짓이더라도 적어도 한 번 문장은 실행됩니다.
이 후 조건이 참/거짓인지의 여부에 따라 문장을 계속 실행할지를 결정하게 됩니다.
do {
문장;
} while (조건);
while 문의 위험성
While 문 무한루프 위험성
문장이 계속 참이 되게 되면,
while 문단의 하위에 작성한 코드들은 실행되지 못하고 무한작업으로 인해 CPU 는 100% 로 증가할 수 있습니다.
Whiile 문 무한루프 예제
i 는 항상 1 이고, 조건은 항상 참이 되기 때문에
아래의 "문장은 실행될 수 있을까?" 는 실행될 수 없습니다.
또한 "나갈 수 있을까?" 를 무한실행하면서 출력시키기 때문에 CPU 가 100% 로 상승할 수 있습니다.
부하 작업이 커질수록 CPU 상승량이 더욱 높아진다는 의미입니다.
1
2
3
4
5
6
7
8
9
10
11
|
public class WhileTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 1;
while ( i == 1 ) {
System.out.println("나갈수 있을까?");
}
System.out.println("문장은 실행될수 있을까?");
}
}
|
cs |
While 문 무한루프 벗어나는 방법
while 문 내에 특정 조건에서 break 를 써줌으로 써 무한루프를 벗어날 수 있습니다.
while 문에서 i 값을 증가시킴으로 써 조건이 참이 아니어서 벗어나게 할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public class WhileTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 1;
while ( i == 1 ) {
System.out.println("나갈수 있을까?");
if ( i == 1 ) {
break;
}
}
while ( i == 5 ) {
System.out.println("나갈수 있을까?");
i = i + 1;
}
System.out.println("문장은 실행될수 있을까?");
}
}
|
cs |
while 문과 do-while 사용 방법
8번째 줄은 while 문 방식입니다.
먼저 i 가 5 가 아닌 지 체크 후, 참이면 문장을 실행하는 방식입니다.
i 가 5가 될 때 문장을 실행하지 않고 다음 단계로 넘어갑니다.
16번째 줄은 do-while 문 방식입니다.
먼저 출력을 한번 하고 i 값을 증가합니다.
이 후 i 가 5가 아닌지 체크 후, 참이면 문장을 다시 실행합니다.
i 가 5가 될 때 문장을 실행하지 않고 다음 단계로 넘어갑니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
public class WhileTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i;
i = 1;
while ( i != 5 ) {
System.out.println( "첫번째 반복문" + i );
i = i + 1;
}
System.out.println();
i = 1;
do {
System.out.println( "두번째 반복문" + i );
i = i + 1;
} while ( i != 5 );
}
}
|
cs |
자바 while 문
자바 do while 문
자바 while do while 문 예제
자바 while do while 차이점
자바 while 무한루프 벗어나기
자바 while 무한루프 탈출
'Computer Language > JAVA' 카테고리의 다른 글
[JAVA] 자바 배열크기 키보드로 입력과 배열 길이 확인하는 방법 (2) | 2020.11.03 |
---|---|
[JAVA] 자바 배열의 선언, 초기화, 값 대입하기 (0) | 2020.11.03 |
[JAVA] 자바 반복문 중첩 for 문으로 구구단과 별찍기 만들어보기 (0) | 2020.11.02 |
[JAVA] 자바 논리 연산자를 사용하여 IF문 OR, AND 조건 사용하기 (0) | 2020.11.01 |
[JAVA] 자바 SWITCH 문에서 문자열을 입력받는 방법 (0) | 2020.11.01 |