5. 제어문

zza·2023년 9월 12일
1

Java

목록 보기
5/19

  • 위에서 아래로 흐르는 프로그래밍 순서를 바꾸고 싶을 때 사용
  • 조건문과 반복문, 분기문이 있다.
  • 조건문: if, else-if, else, switch
  • 반복문: for, while, do-while

조건문

※ chap3 - condition

단순 if문

  • 파이썬과 다르게 들여쓰기 필수 아님. 구분은 {}로 하고, 들여쓰기는 가독성을 위해 할 뿐이다.
if ( number % 2 == 0) {
	syso("짝수");
if (number % 2 == 1)
	syso("홀수");
  • if의 실행문이 하나일 때는 {} 생략 가능.

if-else문

  • if-else문 한 줄로 쓰고싶을 때 조건연산자로 쓸 수 있다.

다중 if문

  • if와 else 사이에 else if 사용
  • else는 필수 x
  • 조건 1 x -> 조건 2
  • 조건 1, 2 x -> 조건 3
  • 조건 2가 참이라면 조건 3은 읽지 않음(효율성)
  • (cf) 파이썬은 elif

중첩 if문

  • else의 짝은 가까운 if문.(들여쓰기 안해도)

문제

  1. x
  1. 43
    :print는 줄 바꿈 안되고, x < 0은 실행 안된다.
  1. else에 조건문 있으면 안된다.
    : else는 위의 모든 조건이 아닐 때 실행되는 것.

반복문

※ chap3 - Loop

  • while문이 for문보다 더 크다.(무한반복 가능)

while문

  • 본체를 탈출 할 실행문 = false

do-while문

  • 일단 1번 실행(do) 후 반복할지를 결정
    (cf) while문은 조건만 맞으면 냅다 반복
		do {
			System.out.println();
		}while(조건식);

do-while //i = 11
while //i = 10

for문

for(변수 초기화; 조건식; 증감식){
	실행문 }
  • for문의 각 자리들은 생략 가능하다.
  • (cf.파이썬)
for 변수 in 범위:
	수행할 문장




  • Java에서는 for문으로도 무한반복문을 만들 수 있다.
    : 조건식을 생략 할 경우.
  • (cf) 파이썬은 for문으로 무한반복 x
  • 조건식을 생략하고 {}안에 조건문을 넣어 만족 시 break하도록 만들 수도 있다.

Ctrl + Shifr + f : 자동정렬

반복문 비교

  • 배열 = 리스트

분기문

break문

  • break를 포함한 반복문만 빠져나온다.

continue문

  • continue를 만나면 반복의 조건식으로 이동한다.
  • 반복 종료x, 반복의 조건문을 다시 비교하게 만드는 것.
  • for문만 예외로 continue를 만나면 증감식으로 갔다가 조건식으로 간다.(for문의 반복구조(초기>조건>실행>증감>조건>...)때문에)

문제

  1. a ~ z까지 한줄 출력 : abc...xyz
  1. x
    :무한반복

3.x
:반복문에서 사용한다.
:break는 switch 조건문에서 사용 가능하다.

  1. 12
    :print는 한줄로 붙어서 출력

switch문

  • 조건문의 일종으로 파이썬에는 없다.
switch(변수 or 연산식) {
	case 상수1 :
    	실행문1
    case 싱수2 :
    	실행문2
        .
        .
     default : 
     	실행문
     }

  • default(기본값)은 모든 case가 아닐 경우 실행된다.


: number = 2 이므로 case 2
-> case 3제외 2 아래 모든 실행문이 실행된다.
-> case 2, 1 실행 -> **


: break를 이용하여 조건(case)에 맞는 실행문만 실행하고 switch문을 빠져나온다. -> *
: default값만 break 안 써도 된다.

  • switch문에 continue는 사용할 수 없다!


: case 1 or 2 조건일때 "어류" 실행 후 break로 switch문 빠져나온다.

개선된 switch문


  • -> 연결 가능
  • ;하면 break랑 같은 효과 발생

문제

  1. x
    :swtich에서 double형은 사용 불가.
  1. 234
    :break 없어서 case 1 아래로 모두 실행된다.

random

  • Math모듈의 random()함수 이용
  • 0부터 시작!
  • 값은 double으로 돌려준다.
  • int로 받고싶다면 double보다 작은 자료형이므로 강제형변환이 필요하다.

ex) 1~100사이의 난수 발생시키기

int answer = (int) (Math.random() * 100) + 1;

profile
zza

0개의 댓글