(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);
}
}
'Language > Java' 카테고리의 다른 글
19.10.24. (Reference DataType/Class/Method/Constructor/Overloading/메모리 사용 영역/Method/Heap/Stack) (0) | 2021.01.15 |
---|---|
19.10.23. (do ~ while문/로또 소스/숫자 야구 게임 소스/break/continue) (0) | 2021.01.15 |
19.10.21. (반복문/for문/구구단 소스/중첩 for문/삼각형 출력) (0) | 2021.01.15 |
19.10.19. (ECLIPSE 설치/프로젝트 생성/소스파일/컴파일/실행/글꼴변경/라인번호 생성) (0) | 2021.01.15 |
19.10.18. (ascii code/타입변환/강제형변환/자동형변환/가위바위보 소스/주사위 소스) (0) | 2021.01.15 |