본문 바로가기

프로그래밍/Java

Java_조건문과 반복문(2)

① 임의의 정수 만들기 Math.random()

- 난수(임의의 수)를 얻기 위해서는 Math.random()을 사용하는데, 

이 메서드는 0.0과 1.0사이의 하나의 double값을 반환한다. (0.0 <= Math.random() < 1.0)

- 만일 3과 5 사이의 정수를 구하기를 원한다면, 다음과 같은 과정을 행하면 된다.

 1. 각 변에 3을 곱한다

 0.0 *3 <=Math.random() *3 < 1.0 *3

 0.0 <= Math.random() *3 < 3.0 

 2. 각 변을 int형으로 변환한다.

  (int)0.0 <= (int)(Math.random() *3 ) < (int)3.0

  0 <= (int)(Math.random() *3) < 3

 3. 각 변에 3을 더한다. 

  0 +3 <= (int)(Math.random() *3) +3 < 3 +3

  3 <= (int)(Math.random() *3) +3 < 6

→ 3과 5사이의 정수 반환.

class Ex4_7 {
	public static void main(String args[]){
    	int num=0;
        
        for(int i=1; i<=5, i++) {
        	num=(int) (Math.random()*6)+1;
            System.out.println(num);
        }
    }
}
결과 (실행할 때마다 다르게 나옴.)
6
1
5
2
1

 

② for문

- for(초기화;조건식;증감식) {

//조건식이 참(true)인 동안 수행될 문장을 적는다.

}

→ for문의 수행순서는 제일 먼저 초기화가 수행되고 조건식이 참인 동안 

조건식 -> 수행될문장 -> 증감식 순으로 반복되다가 조건식이 거짓이 되면 for문을 빠져나간다.

class Ex4_10 {
	public static void main(String[] args) {
    	int sum=0;	//합계를 저장하기 위한 변수
        
        for(int i=1; i<=5; i++) {
        	sum+=i;	//sum=sum+i;
            System.out.printf("1부터 %2d 까지의 합: %2d%n", i, sum);
        }
    }
}
결과 
1부터  1 까지의 합:  1
1부터  2 까지의 합:  3
1부터  3 까지의 합:  6
1부터  4 까지의 합:  10
1부터  5 까지의 합:  15

→ %2d 에서 2는 앞 공백 2칸을 뜻한다. 

 

③ 중첩 for문

class Ex4_11 {
	public static void main(String[] args) {

		for(int i=1;i<=5;;i++) {
        	for(int j=1;j<=i;j++) {
            	System.out.print("*");
            }
            System.out.println();
        }
    }
}
결과
*
**
***
****
*****

 

④ while문

- while (조건식) {
 // 조건식의 연산결과가 참(true)인 동안 반복될 문장들을 적는다. 

}

class 4_13 {
	public static void main(String args[]) {
    	int sum=0;
        int i=0;
        
        while (sum<=100) {
        	System.out.printf("%d - %d%n", i, sum);
            sum += ++i;
        }
    }
}
결과
0 - 0 
1 - 1
2 - 3
3 - 6
4 - 10
5 - 15
6 - 21
7 - 28
8 - 36
9 - 45
10 - 55
11 - 66
12 - 78
13 - 91

 

⑤ do-while문

- do {

 //조건식의 연산결과가 참일 때 수행될 문장들을 적는다. (처음 한 번은 무조건 실행)

} while (조건식);

→ 블럭 {}을 먼저 수행한 후에 조건식을 평가한다. 그래서 do-while문은 최소한 한 번은 수행된다.

 

⑥ break문과 continue문 

- break문은 자신이 포함된 가장 가까운 반복문을 벗어난다.

- continue문은 반복문 내에서만 사용할 수 있으며, 반복이 진행되는 도중에 continue문을 만나면

반복문의 끝으로 이동하여 다음 반복으로 넘어간다.

(for문의 경우 증감식으로 이동, while문과 do-while문의 경우 조건식으로 이동.)

- continue문은 전체 반복 중에 특정조건을 만족하는 경우를 제외하고자 할 때 유용하다.

import java.util.*;

class Ex4_18 {
	public static void main(String args[]) {
    	int menu=0;
        int num=0;
        
        Scanner scanner = new Scanner(System.in);
        
        while(true){
        	System.out.println("(1) square");
            System.out.println("(2) square root");
            System.out.println("(3) log");
            System.out.print("원하는 메뉴(1~3)를 선택하세요.(종료:0)>");
            
            String tmp=scanner.nextLine();
            menu=Integer.parseInt(tmp);
            
            if(menu==0) {
            	System.out.println("프로그램을 종료합니다.");
                break;
            } else if (!(1<=menu&&<=3)){
            	System.out.println("메뉴를 잘못 선택했습니다.(종료는 0)");
                continue;
            }
            
            System.out.println("선택하신 메뉴는 "+menu+"번입니다.");
        }
    }
}
결과
(1) square
(2) square root
(3) log
원하는 메뉴(1~3)를 선택하세요. (종료:0)>1
선택하신 메뉴는 1번입니다.

 

'프로그래밍 > Java' 카테고리의 다른 글

Java_배열(2)  (0) 2022.10.10
Java_배열(1)  (2) 2022.10.05
Java_조건문과 반복문(1)  (0) 2022.09.22
Java_연산자(2)  (0) 2022.09.14
Java_연산자(1)  (0) 2022.09.08