[Java] 제어문-if, switch / 반복문-for, while / 랜덤 함수 사용법 / final

2026. 3. 17. 17:16·Java

랜덤 함수 사용

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
'Java' 카테고리의 다른 글
  • [Java] 자바의 원칙 vs 편의성: 철학을 깬 복합 대입 연산자, char 배열 출력과 철학을 지킨 for-each문
  • [Java] while문 / 분기 처리-break, continue
  • [Java] 연산자 종류 / 참조 연산자 / instanceof / 논리 연산자 / 오류 주의
  • [Java] 원시 타입과 참조 타입의 차이 / 데이터 타입 / 리터럴
미우딩
미우딩
다양한 프로그래밍 언어를 공부하고 있는 공대생입니다! Python, Java, C언어를 주로 공부하고 있으며 Figma를 통한 디자인도 종종 올릴 예정입니다.
  • 미우딩
    미우의 코딩 기록
    미우딩
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • Java (47)
      • C언어 (0)
      • 대외활동 (5)
      • Spring (4)
      • 프로젝트 (2)
      • 앱개발 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    IT #알고리즘 #그리디알고리즘 #탐욕알고리즘 #코테
    IT #코딩테스트 #알고리즘 #DFS #재귀함수 #무방향그래프
    IT #코딩테스트 #알고리즘 #스택 #
    IT #알고리즘 #코딩테스트 #삽입정렬 #오름차순정렬
    IT #코딩테스트 #알고리즘 #투포인터 #시간제한 #Scanner #BufferedReader #StringTokenizer
    IT #큐 #알고리즘 #코딩테스트 #자바 #선입선출
    android #java #kotlin #compose
    IT #백준 #알고리즘 #코딩테스트 #배열 #형변환 #평균구하기
    android #java #kotlin #상태관리
    IT #알고리즘 #코딩테스트 #DFS
    IT #코딩테스트 #알고리즘 #백준 #투포인터 #배열
    push #pop #StringBuffer
    IT #백준 #코딩테스트 #알고리즘 #구간합 #반복문
    IT #코딩테스트 #알고리즘 #버블정렬 #오름차순
    IT #코딩테스트 #이진탐색 #알고리즘
    IT #BFS #코딩테스트 #구현 #큐 #재귀함수
    Spring #정적컨텐츠 #MVC #템플릿엔진 #API #애너테이션
    BufferedReader
    IT #코딩테스트 #알고리즘 #슬라이딩윈도우 #투포인터 #함수
    IT #알고리즘 #코딩테스트 #선택정렬 #내림차순정렬 #최댓값
    IT #알고리즘 #코딩테스트 #우선순위큐 #힙 #절댓값 #오름차순 #정렬
    IT #백준 #알고리즘 #코딩테스트 #배열 #형변환 #아스키코드
    IT #알고리즘 #코딩테스트 #퀵정렬 #오름차순정렬
    java #android #개발자
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
미우딩
[Java] 제어문-if, switch / 반복문-for, while / 랜덤 함수 사용법 / final
상단으로

티스토리툴바