티스토리 뷰

728x90
반응형

반복문에는 for문 이외에 while문이 있다.

while(조건)에서, 조건이 참일 경우 while문이 실행된다.


예제1 - 무한 루프

MainClass10.java - 탈출 조건이 없고 while(true)이므로 무한루프 실행 

package test.main;

public class MainClass10 {
	public static void main(String[] args) {
		int count = 0;
		//무한 루프
		while(true) {
			count++;
			System.out.println(count+"반복중...");
			
		}
		
	}

}

예제2 - 탈출 조건 넣기1

MainClass11.java - count가 100000일 때 while문을 빠져 나오도록 탈출조건 설정 

package test.main;

public class MainClass11 {
   public static void main(String[] args) {
      int count=0;
      //외형을 보면 무한 루프이지만 
      while(true) {
         count++;
         System.out.println(count+" 번 반복중...");
         //탈출 조건이 있다. 
         if(count == 100000) {
            break;//인접한 반복문 블럭 1개 탈출
         }
      } 
      System.out.println("main 메소드가 종료 됩니다.");
   }
}

count가 99999일 때, count++되어 count는 100000이되고, "100000번 반복중..."이 출력된다.

if문에서 count 가 100000이므로 break문을 통해 while문을 탈출한다.


예제 3 - 탈출 조건 넣기 2

MainClass13.java - count가 100000보다 작을 때만 while문 실행되도록 설정

package test.main;

public class MainClass12 {
   public static void main(String[] args) {
      
      int count=0;
      while(count<100000) {
         count++;
         System.out.println(count+"번 반복중...");
      }
      
      System.out.println("main 메소드가 종료됩니다.");
      
   }
}

count가 99999이면, count++되어 count가 100000이 되고, 바로 countrk 100000이므로 "100000번 반복중..."이 출력된다.

다음 while문이 실행되면 count가 100000이므로 while문을 탈출하여 "main 메소드가 종료됩니다."를 출력한다.


문자열로 탈출조건 지정하기 - .equals()

q를 입력하면 while문을 탈출하는 예제이다.

지금까지 정수로만 탍출조건을 지정했는데 이번에는 문자열로 탈출조건을 지정하는 예제이다.

자바에서는 문자열이 같은지 비교할 때 동등비교연산자인 "=="을 사용하면 절대! 안된다. 

대신, 자바에서 문자열이 같은지 비교할 때는 .equals()메소드를 이용해야 한다.

 

MainClass13.java

package test.main;

import java.util.Random;
import java.util.Scanner;

public class MainClass13 {
   public static void main(String[] args) {
      Scanner scan=new Scanner(System.in);
      while(true) {
         System.out.print("탈출하고 싶으면 q 를 입력하세요:");
         String line=scan.nextLine();
         /*
          *  java 에서 문자열이 같은지 비교할때는 .equals() 메소드를 이용해야 한다.
          */
         if(line.equals("q")) {
            break;
         }
      }
      System.out.println("main 메소드가 종료 됩니다.");
   }
}

 

출력 결과

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함