① 임의의 정수 만들기 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 |