If문
- 삼항연산자랑 완전히 똑같다
// 조건이 두 개 일때
int score = 95;
char grade;
// if문
if(score > 90) {
grade = 'A';
} else {
grade = 'B';
}
System.out.println(grade); // A
// 삼항연산자
grade = (score>90) ? 'A' :'B';
System.out.println(grade); // A
- if문 내부 코드가 한 줄이어도 중괄호 { } 생략하지 않는다.
- 물론 중괄호 { } 를 생략해도 컴파일하는데는 아무 문제가 없음
- 하지만 코드가 복잡해질수록 괄호로 안묶여있다면 착각할 수 있음
- 따라서 항상 Scope(범위)를 만들어서 실행한다
조건이 세 개 일때
// if문
int score1 = 85;
if(score1 > 90) {
grade = 'A';
} else {
if(score1 > 80) {
grade = 'B';
}
else {
grade = 'C';
}
} System.out.println(grade); // B
// 삼항 연산자
grade = (score1>90) ? 'A' : ((score1>80) ? 'B' : 'C');
System.out.println(grade); // B
else if 문
int score2 = 75;
char grade2;
if (score2 > 90) {
grade2 = 'A';
} else if(score2 >= 80 && score2 < 90) {
grade2 = 'B';
} else if(score2 >= 70 && score2 <80) {
grade2 = 'C';
} else if(score2 >= 60 && score2 < 70) {
grade2 = 'D';
} else {
grade2 = 'F';
} System.out.println(grade2); // C
- else if 문 사용시 확률상 가능성이 높은 조건을 위로 배치한다.(현업 지침서 참고)
- 그러나 가시적인 구조를 더 선호함(예를 들어, D등급 학생들이 많다고해서 D를 A보다 먼저 배치하지는 않음)
- else if 문 사용시 else 문도 꼭 사용해주어야함
- 조건이 점점 많아질수록 if문은 불편할 수 밖에 없다 -> Switch문의 필요성
if - else if - else 문
int score = 75;
if (score >= 90) {
System.out.println("점수가 90~100입니다.");
System.out.println("등급은 A입니다.");
} else if (score >=80) {
System.out.println("점수가 80~89입니다.");
System.out.println("등급은 B입니다.");
} else if (score >=70) {
System.out.println("점수가 70~79입니다.");
System.out.println("등급은 C입니다.");
} else {
System.out.println("점수가 70 미만입니다.");
System.out.println("등급은 D입니다.");
}
random 함수
- String 타입에 들어가보면 변수도 나오고 어떠한 기능들을 수행하는 함수들도 나온다
- 마찬가지로 Math 라는 클래스안에는 많은 메소드들이 들어있는 것을 알 수 있다.
- 그 중에 random() 이라는 이름을 가진, 어떤 수를 임의로 뽑아내는 기능을 하는 메소드가 있다.
- random() : double 을 통해 기본 디폴트 타입은 double로 설정되어있는걸 알 수 있음
- 전부 다 외울 필요없이 까먹었을때마다 Math . 찍고 > Enter > 리스트를 참고하여 확인할 수 있다
** 주사위의 1~6 번호 뽑기 예제
System.out.println(Math.random()); // 0~1 사이의 실수를 무작위로 꺼냄
int number= (int) (10 * (Math.random()));
System.out.println(number); // 0~9 사이의 자연수(10개)중 하나를 무작위로 꺼냄
// 0~9까지의 수 를 무작위로 뽑기
System.out.println((int)(Math.random()*10));
// 1~10까지의 수 를 무작위로 뽑기
System.out.println((int)(Math.random()*10 + 1));
// 1~100까지의 수 를 무작위로 뽑기
System.out.println((int)(Math.random()*100 + 1)); // 곱해지는 수 만큼의 개수 중에서 뽑게됨
//주사위 던지기 (1~6 사이의 정수)
System.out.println((int)(Math.random()*6 + 1));
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번이 나왔습니다.");
}
switch문
- 어떤 조건문을 switch문으로 표현 가능하다면 반드시 if문 대신 switch문을 써야한다
- switch문이 효율이 더 뛰어나기 때문.
- if 문은 분기로 나눌 때, switch 문은 변수로 나눌때 사용?
- switch문은 예제를 몇 개 외워두도록 하자
break
int score = 85;
char grade;
switch(score) {
case 100 :
case 99 :
case 85 :
grade = 'A';
break;
case 89 :
case 88 :
grade = 'B';
}
- case 마다 break를 해주는게 아니라 우리가 원하는 곳만 break를 선언해줌
- 여러 case를 쭉 통과시키도록 하기위해서는 군데 군데만 break를 써줌
** switch문 계절 예제
int month = 3;
switch(month) {
case 12:
case 1:
case 2:
System.out.println("겨울입니다.");
break;
case 3:
case 4:
case 5:
System.out.println("겨울입니다.");
break;
case 6:
case 7:
case 8:
System.out.println("겨울입니다.");
break;
case 9:
case 10:
case 11:
System.out.println("겨울입니다.");
break;
}
자바에서 전구 표시
- The value of the local variable grade is not used
- 경고 표시임 (컴파일하는데 문제없음)
- 하지만 print문이 선언되지않아 결과가 출력되지않는다.
'👨💻 2. 웹개발_Back end > 2-1 Java' 카테고리의 다른 글
[JAVA] 05-1 참조타입과 참조변수 (0) | 2021.07.28 |
---|---|
[JAVA] 04-2 반복문 (for문, while문, do-while문) (0) | 2021.07.27 |
[JAVA] 03-2 연산자의 종류 (0) | 2021.07.26 |
[JAVA] 03-1 연산자와 연산식 (0) | 2021.07.23 |
[JAVA] 02-4 변수와 시스템 입출력 (0) | 2021.07.23 |
댓글