(1) while문 : 횟수가 안 정해져 있을 때(for문과 차이점), only 조건만 참조,

조건을 만족 하지 않으면 한 번도 실행이 안 될 수도 있다!!!

형식)

while (조건식) {

실행문;

}

 

public class  WhileTest{
	public static void main(String[] args)  {
		System.out.println(" 1~10까지 출력!!!" ); //for문으로 쓰는 게 더 효율적
		int x = 1;
		while (x<=10){
			System.out.println(x++); //그냥 x만 하면 1씩 증가하지 않아, 1만 계속 출력됨
		}

		System.out.println(" 1~10까지 출력!!!(홀수만)" );
		 int a = 1;
		 while (a<=10) {
			 if (a%2==1) {
				System.out.println(a);
			 }
				a++; // a= a+1 or a+=2;
		 }

		 int y = 10;
		 int z = (int) (Math.random()*10); // 0-9
		 while (z !=0){ //어떤 숫자를 0으로 나눌 수 없기 때문에 이렇게 처리
			System.out.println(y + "/" + z + " = " + y / z);
			z = (int) (Math.random() * 10);
		 }
	}
}
---------- run ----------
 1~10까지 출력!!!
1
2
3
4
5
6
7
8
9
10
 1~10까지 출력!!!(홀수만)
1
3
5
7
9
10/4 = 2
10/5 = 2
10/1 = 10
10/3 = 3

- 로또 게임 (배열 사용 x)

/*
1. 1~45의 중복되지 않는 난수 6개
2. 1의 발생 숫자를 정렬 (나중에...)
3. 게임수 (5판)
결과>
1게임 : 5 10 13 26 85
2게임 :'
.
.
5게임 : 2 4 9 2 15 95
*/

//로또는 계속 반복되기 때문에 if문으로 하기에는 부적합. while로 처리하기.(횟수를 모르는 계속 반복되는 식)

public class  Lotto{
	public static void main(String[] args)  {
		int gameCnt = 5;
		System.out.println("===== 금주의 예상번호 =====");
		int l1,l2,l3,l4,l5,l6;
		for (int i=1;i<=gameCnt ;i++ ){
			
		 l1 = (int) (Math.random()*45)+1;
		 l2 = (int) (Math.random()*45)+1;
		 l3 = (int) (Math.random()*45)+1;
		 l4 =(int) (Math.random()*45)+1;
		 l5 =(int) (Math.random()*45)+1;
		 l6 =(int) (Math.random()*45)+1;
		
		while(l1==l2) { //중복제거
			l2 = (int) (Math.random()*45)+1;
		}
		while(l1==l3 || l2 == l3) {
			l3 = (int) (Math.random()*45)+1;
		}
		while(l1==l4 || l2 ==l4 || l3 == l4) { 
			l4 = (int) (Math.random()*45)+1;
		}
		while(l1==l5 || l2 == l5 || l3 == l5 || l4 == l5) { 
			l5 = (int) (Math.random()*45)+1;
		}
		while(l1==l6 || l2 == l6 || l3 == l6 || l4 == l6 || l5 == l6) { 
			l6 = (int) (Math.random()*45)+1;
		}
		System.out.println(i +"게임 : " +l1+ " " + l3 + " " + l4+ " " + l5+ " " + l6 );
		}			
	} 
}

- 구구단 소스 (while문)

public class  GugudanWhileTest{
	public static void main(String[] args)  {
		int dan = 2;
		int i = 1;
		while (dan<=9){ 
			while (i<=9){
				System.out.print(dan + " * " + i+ " =  " + dan*i + "  ");
				i++; 
			}
			i = 1;
			System.out.println();
			 dan++;
		} 
		
	}
}
---------- run ----------
2 * 1 =  2  2 * 2 =  4  2 * 3 =  6  2 * 4 =  8  2 * 5 =  10  2 * 6 =  12  2 * 7 =  14  2 * 8 =  16  2 * 9 =  18  
3 * 1 =  3  3 * 2 =  6  3 * 3 =  9  3 * 4 =  12  3 * 5 =  15  3 * 6 =  18  3 * 7 =  21  3 * 8 =  24  3 * 9 =  27  
4 * 1 =  4  4 * 2 =  8  4 * 3 =  12  4 * 4 =  16  4 * 5 =  20  4 * 6 =  24  4 * 7 =  28  4 * 8 =  32  4 * 9 =  36  
5 * 1 =  5  5 * 2 =  10  5 * 3 =  15  5 * 4 =  20  5 * 5 =  25  5 * 6 =  30  5 * 7 =  35  5 * 8 =  40  5 * 9 =  45  
6 * 1 =  6  6 * 2 =  12  6 * 3 =  18  6 * 4 =  24  6 * 5 =  30  6 * 6 =  36  6 * 7 =  42  6 * 8 =  48  6 * 9 =  54  
7 * 1 =  7  7 * 2 =  14  7 * 3 =  21  7 * 4 =  28  7 * 5 =  35  7 * 6 =  42  7 * 7 =  49  7 * 8 =  56  7 * 9 =  63  
8 * 1 =  8  8 * 2 =  16  8 * 3 =  24  8 * 4 =  32  8 * 5 =  40  8 * 6 =  48  8 * 7 =  56  8 * 8 =  64  8 * 9 =  72  
9 * 1 =  9  9 * 2 =  18  9 * 3 =  27  9 * 4 =  36  9 * 5 =  45  9 * 6 =  54  9 * 7 =  63  9 * 8 =  72  9 * 9 =  81  

- 두개의 주사위를 던졌을 때 나오는 눈을 (눈1, 눈2)로 출력하고, 눈의 합이 5가 아니면 계속 주사위를 던지고, 눈의 합이 5이면 실행을 멈추어라. (while문 사용)

public class  Example {
	public static void main(String[] args)  {
		/*int a = 3;
		int b = 3;
		while (a+b != 5){
			a = (int) (Math.random()*6)+1;
			b = (int) (Math.random()*6)+1;
			System.out.println ("(" + a + " , " + b + ")");
		} */

//while & break 사용
		while (true){
			int a = (int)(Math.random()*6)+1;
			int b = (int)(Math.random()*6)+1;
			System.out.println(" (" +a+", "+ b + " )");
			if (a+b ==5){
				break;
			}
		}
	}
}

- while & 증감연산자

public class While1{
	public static void main(String[] args) {
		int j=1, i=1, k=1;
		int sum1=0;
		int sum2=0;
		int sum3 = 0;

		while (j<=10){
			sum1 = sum1 +(j++); // 1~10까지 결과 : 55
		}

		while (i<=10){
			sum2 = sum2 +(++i); // 1~11까지 결과 : 65
		}

		while (k<10){
			sum3 = sum3 +(k++); // 1~9까지 결과 : 45
		}
		System.out.println(sum1);
		System.out.println(sum2);
		System.out.println(sum3);
	}
}

+ Recent posts