랜덤 함수 사용
Math.random();
이때 값의 범위: 0.0 <= random 값 < 1.0
-> 원하는 범위에 따라 식을 만들어서 범위 지정
예를 들어
double rand = Math.random();
System.out.println((int)(rand*6)); // 0~5 사이의 정수
규칙: (int) (Math.random() * 개수) + 시작값
- 개수: (마지막 값 - 시작 값 + 1)
- 시작값: 말 그대로 범위의 첫 번째 숫자
if와 else if
if만 쓰면 if가 참이어도 다른 if도 다 실행해 비효율적임
if와 else if를 쓰면 if가 참일 땐 else if, .. else를 실행하지 않게 하여 실행 횟수 감소 → 효율적!
- 주의: &&을 쓸 때 위의 조건과 아래 조건식 중 없어도 되는 조건이 있는지 확인
if(score >= 90 && score<=100)
System.out.println(score+"점은 A등급");
else if(score >= 80 && score<=89)
->
if(score >= 90)
grade = 'A';
else if(score >= 80) // 이 조건으로 왔다는 건 score가 당연히 89이하인 상태
switch(값)
→ 값의 타입: int(byte, short, char→ 자동 형변환되지만 가능), String
- long은 안됨(int에서 자동 형변환되지 못해서)
- char은 음의 값은 저장 X → short와 같은 2byte지만 서로 형변환 X
- default는 마지막에 else같은 용도
- case 안의 실행문이 여러 개일 때, {}으로 안 감싸도 가능함
꿀팁: 조건의 공통점으로 찾아서 case를 줄이는 방안을 생각해야 함
switch(score/10) {
case 10 :
case 9 : // 100~90까지 case가 아닌 10, 9로 단축
credit = 'A';
break;
case 8 :
credit = 'B';
break;
case 7 :
credit = 'C';
break;
case 6 :
credit = 'D';
break;
default :
credit = 'F';
}
switch와 if문의 차이
조건이 여러 개인 경우 if보다 switch로 case 여러 개 적고 마지막에 실행문 적는게 속도 더 빠름
if로 하면 위의 조건부터 값을 비교하며 탐색 후 실행지만 switch는 값에 맞는 case를 바로 찾아서 실행
switch(month) {
case 12:
case 1:
case 2 :
System.out.println(month + "월은 겨울");
break;
case 3:
case 4:
case 5 :
System.out.println(month + "월은 봄");
break;
case 6:
case 7:
case 8 :
System.out.println(month + "월은 여름");
break;
default:
System.out.println(month + "월은 가을");
}
반복문
- 트래디셔널 for, for each
- for문: 반복 횟수를 정해두고 반복할 때 사용, 시작값~종료값
- while: 조건에 따른 반복, 무한루프
- do …while
변수를 상수로 final
: 상수로 바꿈(c언어의 const 같은 것)
- 변수이지만, 값을 재할당할 수 없음, 처음 값 유지
- 대문자로만 변수명 지정
'Java' 카테고리의 다른 글
| [Java] 자바의 원칙 vs 편의성: 철학을 깬 복합 대입 연산자, char 배열 출력과 철학을 지킨 for-each문 (0) | 2026.03.19 |
|---|---|
| [Java] while문 / 분기 처리-break, continue (0) | 2026.03.18 |
| [Java] 연산자 종류 / 참조 연산자 / instanceof / 논리 연산자 / 오류 주의 (0) | 2026.03.17 |
| [Java] 원시 타입과 참조 타입의 차이 / 데이터 타입 / 리터럴 (3) | 2026.03.16 |
| [Do it! 알고리즘 코딩 테스트 자바] 그리디 알고리즘, 소수 구하기, 유클리드 호제법, 그래프 [13~18일차] (1) | 2026.03.15 |