if-else if문
여러 개 중의 하나 - 여러 개의 조건식을 포함한 조건식
int score = 0; // 점수를 저장하기 위한 변수
char grade =' '; // 학점을 저장하기 위한 변수. 공백으로 초기화한다.
System.out.print("점수를 입력하세요.>");
Scanner scanner = new Scanner(System.in);
score = scanner.nextInt(); // 화면을 통해 입력받은 숫자를 score에 저장
if (score >= 90) { // score가 90점 보다 같거나 크면 A학점
grade = 'A';
} else if (score >=80) { // score가 80점 보다 같거나 크면 B학점
grade = 'B';
} else if (score >=70) { // score가 70점 보다 같거나 크면 C학점
grade = 'C';
} else { // 나머지는 D학점
grade = 'D';
}
System.out.println("당신의 학점은 "+ grade +"입니다.");
하단 else를 없애고 grade 변수에 D 값을 기본으로 넣어줘도 된다. (코드가 간결해짐)
int score = 0; // 점수를 저장하기 위한 변수
char grade = 'D'; // 학점을 저장하기 위한 변수. 공백으로 초기화한다.
System.out.print("점수를 입력하세요.★");
Scanner scanner = new Scanner(System.in);
score = scanner.nextInt(); // 화면을 통해 입력받은 숫자를 score에 저장
if (score >= 90) { // score가 90점 보다 같거나 크면 A학점
grade = 'A';
} else if(score >= 80) {
grade = 'B';
} else if(score >= 70) {
grade = 'C';
}
중첩 if문 - if문 안의 if (횟수 제약이 없다)
import java.security.cert.PKIXRevocationChecker.Option;
import java.util.Scanner;
class Ex4_5 {
public static void main(String[] args) {
int score = 0;
char grade = ' ', opt = '0';
System.out.print("점수를 입력해주세요.>");
Scanner scanner = new Scanner(System.in);
score = scanner.nextInt(); // 화면을 통해 입력받은 점수를 score에 저장
System.out.printf("당신의 점수는 %d입니다.%n", score);
if (score >= 90) {
grade = 'A';
if (score >= 98) {
opt = '+';
} else if (score < 94) {
opt = '-';
}
} else if (score >= 80) {
grade = 'B';
if (score >= 88) {
opt = '+';
} else if (score < 84) {
opt = '-';
}
} else if (score >= 70) {
grade = 'C';
if (score >= 78) {
opt = '+';
} else if (score < 74) {
opt = '-';
}
} else {
grade = 'D';
}
System.out.printf("당신의 학점은 %c%c입니다.%n", grade, opt);
}
}
# Math.random() 메소드
-Math.random() 메소드는 0.0과 1.0 사이에 속하는 double 타입의 난수 하나를 리턴한다.
0.0은 범위에 포함되고 1.0은 포함되지 않는다. 이것을 비교 연산자로 표현하면 다음과 같다.
0.0 <= Math.random() < 1.0
# 1 ~10까지 정수 중에서 하나의 정수를 얻기 위해 어떤 과정이 필요한지 알아보자.
-먼저 각변에 10을 곱하면 다음과 같은 범위에 속하는 하나의 double 타입의 값을 얻을 수 있다. (Math.random() 메소드로 1~10까지의 범위 구하기)
# Math.random()에 * 10
0.0*10 <= Math .random()*10 < 1.0*10
# double타입을 int로 타입변환
0.0*10 <= Math .random()*10 < 1.0*10
0 0,1,2,3,4,5,6,7,8,9 10
# Math.random() 메소드로 1 ~ 10 까지의 범위를 구하기위해 +1을 더한다.
0+1 <= (int)(Math .random()*10)+1 < 10+1
1 1,2,3,4,5,6,7,8,9,10 11
이 원리를 이용하면 start부터 시작하는 n개의 정수 중에서
임의의 정수 하나를 얻기 위한 연산식을 다음과 같이 만들 수 있다.
int num = (int) (Math.random () * n) + start(start <= Math.random() < n);
예를들어 주사위 번호 하나를뽑기 위해 다음 연산식을 사용할 수 있다.
int num = (int) (Math.random () * 6) + 1;
-주사위 굴리기에 대한 예제
// 1.0~6.999 > int 형변환 > 1~6
int num =(int) (Math.random() *6) +1;
if (num == 1) {
System.out.println("1이 나왔습니다.");
} else if (num == 2) {
System.out.println("2가 나왔습니다.");
} else if (num == 3) {
System.out.println("3이 나왔습니다.");
} else if (num == 4) {
System.out.println("4가 나왔습니다.");
} else if (num == 5) {
System.out.println("5가 나왔습니다.");
} else {
System.out.println("6이 나왔습니다.");
}
-컴파일러는 조건문을 읽고 나서 해석하지 않는다. (아래의 값은 b가 저장이 되어야 하는데, 컴파일 에러가 뜬다. 결론은, 위에서 변수를 만들 때 꼭 변수의 값을 0이라도 저장하자)
'java↗' 카테고리의 다른 글
java↗5-3. 임의의 정수 만들기 (0) | 2024.03.15 |
---|---|
java↗5-2. switch문 (0) | 2024.03.15 |
java↗5. 조건문과 반복문 (0) | 2024.03.15 |
java↗4-8. 조건 연산자, 대입 연산자 (1) | 2024.03.15 |
java 기본 설정 세팅하기 (0) | 2024.03.14 |