gi_dor

[Java] CH4 조건문과 반복문 본문

First/Java

[Java] CH4 조건문과 반복문

기돌 2023. 1. 11. 18:48
728x90

▶ 조건문 : 조건을 만족 할 때만 { } 를 수행 (0 ~ 1번)

if (score > 60) {
System.out.println ("합격");
System.out.println("축하드립니다");
}

▶ 반복문 : 조건을 만족하는 동안 { } 를 수행 (0 ~ n번)

int i = 10;
while ( i-- >0) {
System.out.println(i);
}

1. if문 , if else문


조건식이 참 (true)일때 , 괄호 {  } 안의 문장들을 수행한다

if (조건식) {    // 시작
 
 조건식이 참 (true일때) 수행될 문장

}  // 끝

  
 if (score > 60) {          // 시작
 System.out.println("합격 입니다");       // 조건식이 true일 때 수행될 문장
 }           // 끝
 
 
 score > 60 
 → 80 > 60 
 → true

▶ 블럭 {  }
여러 문장을 하나로 묶어주는 것

if (score > 60)
{    // 블럭의 시작
         System.out.println("합격 입니다");
        
    }   // 블럭의 끝

 

if - else문
둘중의 하나 - 조건식이 참일 때와 거짓일 때로 나눠서 처리

if (조건식) {
     // 조건식이 true일때 수행될 문장
}else {
    // 조건식이 false 일때 수행될 문장
 }
 
 
 Ex) 조건식 2개를 1개로 변경하기
 
 if (intput==0) {        // 조건식1
 System.out.println("0 입니다");
 }
 
 if (input !=0) {        // 조건식2
  System.out.println("0 이 아닙니다");
}


if (intput==0){
System.out.println("0 입니다");
} else {
System.out.println("0이 아닙니다");
}

 

2. if -else if 문 , 중첩 if문

2 - 1 if -else if 문

▪ 여러개중의 하나 - 여러개의 조건식을 포함한 조건식
if (조건식1){
      // 조건식1의 연산결과가 true일 때 수행될 문장
} else if (조건식2) {
    // 조건식 2의 연산결과가 true일 때 수행될 문장
} else if (조건식3){ 
     // 조건식 3의 연산결과가 true 일 때 수행될 문장
} else { // 마지막은 보통 else 블럭으로 끝나며 , else블럭은 생략가능
     // 위의 어느 조건식도 만족하지 않을 때 수행될 문장
}

2 - 2 중첩 if문

if 문 안의 if문
▶ if (조건식 1) {
      if (조건식2) {   // 조건식1 과 조건식 2가 모두 tur일 때 수행될 문장
}  else {
        // 조건식 1이 true이고 조건식 2가 false일 때 수행되는 문장
    }
} else {
       // 조건식 1이 false 일때 수행될 문잘     
}

3. switch문

처리해야 하는 경우의 수가 많을 때 유용한 조건문
조건문 : if , switch , if -else if

▶  switch문의 제약조건
▪ switch 문의 조건식 결과는 정수 또는 문자열 이어야 한다
▪ case문의 값은 정수 상수 (문자 포함) , 문자열만 가능하며 중복되지 않아야 한다.

int num , result ;
flnal int ONE = 1;

switch (result){
case '1' : 	//  문자 리터럴 (정수 49)
case ONE : 	// 상수
case "YES" : // 문자열 리터럴
case num : 	// 에러 ,변수는 불가
case 1.0 : 	// 에러 ,실수는 불가


1. 임의의 정수만들기

Math.random( ) - 0.0과 1.0 사이의 임의의 double값을 반환
0.0 <= Math.random() < 1.0    // ( 0.0 ~ 0.9999999999999999999)

Ex )  1과 3사이의 정수를 구하기
▪ 0.0 <= Math.rondom( ) < 1.0

각 변에  3을 곱한다
  0.0*3 <= Math.rondom( ) * 3 < 1.0 * 3
 0.0 <= Math.random ( ) * 3 < 3.0
 
각변을 int 형으로 변환
 (int)0.0 <= (int) (Math.random() * 3) < (int)3.0
▪ 0 <= (int)(Math.random() * 3 ) < 3

각변에 1을 더한다
▪ 0 +1 <= (int)(Math.random() * 3 ) +1 < 3 +1 
▪ 1 <= (int)(Math.random () * 3 ) +1 < 4

 

2. for 문

조건을 만족하는 동안 블럭 { }을 반복 - 반복횟수를 알 때 적합함
반복문 : for문 , while문
조건문 : if ,  switch ,  if-else , if

Ex  )  for(int i = 1;  i <5 ; i++) {
System.out.println(" I can do it.");
}

 

 

 

3. 중첩 for 문

for문 내에 또 다른 for문을 포함시킬수 있다

3 - 1 구구단 예제

3 - 2 별찍기 

 

 

 

 


 

1. while문 , do-while문

1 - 1 while문

조건을 만족시키는 동안 블럭 { } 을 반복 - 반복횟수 모를 때
▪ for 문 : 반복횟수를 알때 
▪ while 문 : 반복횟수를 모를 때

▪ 조건식이 true이면 블럭{ } 안으로 들어가고 , false 이면 while문을 벗어남
▪ 블럭 { } 의 문잘을 수행하고 다시 조건식으로 돌아간다

 

	// 초기화, 조건식 , 증감식
for (int i = 1;l i <=10 i++){
	System.out.println(i)
    }
    
    
    
    inti i = 1;  // 초기화
    
    while (i<=10) {  // 조건식
    	System.out.println(i);
	i++;  // 증감식
    }

1 - 2 do - while문

블럭 { } 을 최소한 한번 이상 반복 - 사용자 입력 받을 때 유용
do {
    // 조건시의 연산결과가 true 일 때 수행될 문장들을 적는다 (처음 한번은 무조건 실행)
} while (조건식);    // 끝에 '  ; ' 잊지 않도록 주의하기

 

2. break문 continue문 , 이름붙은 반복문

2 - 1 break 문

자신이 포함된 하나의 반복문을 벗어난다
주로 if문과 함께 사용되어 특정 조건을 만족할 때 반복문을 벗어나게 한다 

숫자를 1부터 계속 더해 몇까지 더하면 합이 100을 넘는지 알아내느 예제
i의 값을 1부터 1씩 계속 증가시켜가며 더해서 sum에 저장
sum의 값이 100을 넘으면 if문의 조건식이 true이므로 break문이 수행되어  자신이 속한 반복문을 즉시 벗어난다

무한 반복문에는 조건문과 break문이 항상 같이 사용되는데 그렇지 않으면 무한하게 반복되기 때문에 
프로그램이 종료 되지 않는다

2 - 2 continue문

반복문 내에서만 사용 되며, 반복이 진행되는 도중에 continue문을 만나면
반복문의 끝으로 이동하여 다음 반복으로 넘어감

Ex ) break문과 continue문 예제

▪ 메뉴를 보여주고 입력받아 선택하게 하는 예제
▪ 메뉴를 잘못 선택한 경우 continue 문으로 메뉴를 보여준다
▪ 종료 ( 0 )를 선택학 경우 break문으로 반복을 벗어나 프로그램이 종료 되도록 한다

 

2 - 3 이름붙은 반복문

break 문은 근접한 하나의 반복문만 벗어 날수 있기 때문에 , 여러개의 반복문이 중첩된 경우
break문으로 중첩 반복문을 완전히 벗어날수 없다
이때는 , 중첩 반복문 앞에 이름을 붙이고 break문과 continue문에 이름을 지정해 줌으로 써 하나 이상의 반복문을 
벗어나거나 반복을 건너 뛸수 있다

728x90

'First > Java' 카테고리의 다른 글

[Java] CH6 객체지향 개념  (0) 2023.03.13
[Java] CH5 배열  (0) 2023.01.15
[Java] CH3 연산자 (Operator)  (0) 2023.01.05
[Java] CH2 변수(variable)  (0) 2022.12.27
ch1 - 자바 시작하기  (0) 2022.12.26