[JAVA]조건문

Hyeok·2022년 10월 31일
1

JAVA

목록 보기
8/10
post-thumbnail

🔎오늘의 목표

  1. if 문
  2. 조건식의 다양한 예시
  3. if-else 문
  4. if-else-if 문
  5. 중첩 if 문
  6. switch 문
  7. 임의의 정수 만들기

1. 🔎if문

여태 코드의 흐름이 무조건 위에서 아래로 한 문장씩 순차적으로 진행되었는데
코드에도 조건에 따라 다른 문장을 다룰 경우가 생긴다 그것을 우리는 조건문이라고하며
그 중 if문은 가장 기본적인 조건문이다. 한번 알아보자!


if(조건식) {
	
    
    // if 문 조건식이 참(true)일때 수향될 문장들을 적는다
   	// 이처럼 조건식을 () 안에 작성하고 그 조건식에 맞춰서 수행될 코드를
    // {} 안에 작성하면 된다.
    
}
예를 한번 들어보자.

if(score > 80) {

	system.out.println("합격입니다.");
   	// 만약 score= 90이라고 가정하면 
    // 조건식은 참이 되기때문에 {}안에 있는 코드가 실행된다.


}

2. 🔎 조건식의 다양한 예

조건식조건식이 참일 조건
90 <= x && x <= 100정수 x가 90이상 100이하일때
x < 0 \\ x > 100정수 x가 0보다 작거나 100보다 클 때
x%3==0 && x%2!=0정수x가 3의 배수이지만 2의 배수가 아닐 때
ch=='y' \\ ch=='Y'ch가 'y'이거나 'Y'일 때
'A' <= ch && ch <= 'Z'문자 ch가 대문자일 때
'a' <= ch && ch <= 'z'문자 ch가 소문자일 때
'0' < 초 && ch <= '9'문자ch가 숫자일 때
str.equals("yes")문자열 str이 "yes"일 때 (대소문자 구분)

2-1 EX)


public class Ex4_2 {

	public static void main(String[] args) {
		
		int x = 0;
		System.out.printf("x=%d 일때, 참인 것은 %n", x);
		
		if(x==0) System.out.println("x==0");
		if(x!=0) System.out.println("x!=0");
		if(!(x==0)) System.out.println("!(x==0)");
		if(!(x!=0)) System.out.println("!(x!=0)");
		
		x = 1;
		System.out.printf("x=%d 일 때 , 참인 것은 %n", x);
		
		if(x==0) System.out.println("x==0");
		if(x!=0) System.out.println("x!=0");
		if(!(x==0)) System.out.println("!(x==0)");
		if(!(x!=0)) System.out.println("!(x!=0)");
        
        
        //결과값 :
        x=0 일 때 , 참인 것은 x==0 
        !(x!=0)
        x=1 일 때 ,참인것은 x!=0 !(x==0)
		
	}

}

3.🔎if-else문

if문의 변형인 if-else문의 구조는 다음과 같다 if문에 else블럭을 추가하면된다.
if문의 조건식 결과가 참이 아닐 때 , 즉 거짓일 때 else블럭의 문장을 수행하라는 의미다.


	if(조건식){
    	// 조건식이 참(true)일 때 수행될 문장들을 적는다
    } else {
    	// 조건식이 거짓(false)일 때 수행될 문장들을 적는다.
    } 
    

3-1.Ex)

import java.util.Scanner;    // Scanne클래스를 추가 

class Ex3_1 {
	public static void main(String[] args) {
   	System.out.print("숫자를 입력하세요.>"); 
       Scanner scanner = new scanner(System.in);
       int input = scanner.newxtInt();  // 화면을 통해서 입력 받는 숫자를 input에 저장
       
       if(input==0) {
       	System.out.println("입력하신 숫자는 0입니다.");
         }	else { // input!=0인 경우
         		System.out.println("입력하신 숫자느 0이 아닙니다.");
               
          }
        }
     }

4. 🔎if-else-if 문

if-else문은 두 가지 경우 중 하나 인데 그 이상은 어떤식으로 해야할까하면 이런식으로
사용해야 한다. 다음과 같다.


if (조건식1) {
	// 조건식1이 참일 때 수행하는 코드 문장.
} else if (조건식2) {
	// 조건식2이 참일 때 수행하는 코드 문장.
} else if (조건식3) {
	// 조건식3이 참일 떄 수행하는 코드 문장.
}	else { // 마지막은 보통 else블럭으로 끝나며 ,else블럭은 생략가능하다.
	// 위에 어느 조건도 충족하지 않으면 실행되는 코드 문장.
}

4-1 Ex)


import java.util.Scanner;  // Scanner클래스 추가 

class Ex4_1 {
	public static void main (String[] args) {
    	int score = 0; // 점수 저장하기 위한 변수  
        char grade = ' ' ; // 학점 저장하기 위한 변수, 공백으로 초기화
        
        System.out.print("점수를 입력하세요.>");
        Scanner scanner = new Scanner(System.in);
        score = scanner.nextInt(); //화면을 통해 입력받은 숫자를 score에 저장
        
        if (score >=90) {   // A학점 기준
        	grade = 'A';
        }	else if  (score >=80) { // B학점 기준
         	grade = 'B';
        }	else if  (score >=70) {	 // C 학점 기준
        	grade = 'C';
        }	else  {  // 그 외 나머지 점수 기준
        	grade = 'D';
        } 
        	System.out.println("당신의 학점은 " + grade + "입니다.");  // 학점 출력 
            
     }
} 

🔎5. 중첩 if 문

if 문의 블럭 내에 또 다른 if 문을 포함시키는 것이 가능한데 이것을 중첩 if 문 이라고하며
횟수에는 큰 제한이 없다.


	if(조건식) {
    	// 조건식1의  결과가 true일 떄 수행될 코드 문장들을 작성
       if(조건식2) {
       			// 조건식1과 조건식2가 모두 true일 때 수행될 코드 문장들을 작성
        } else {
          		// 조건식1이 true이고, 조건식2가 false일 떄 수행되는 코드 문장들
        }
    } else { 
     		// 조건식1이 false일 때 수행되는 코드 문장들
    }

5-1 Ex)


import java.util.Scanner;   // Scanner클래스 추가 

	public static void main(String[] args) {
    int score = 0;
    char grade = ' ', opt ='0';
    
    System.out.print("점수를 입력하세요.>");
    
    Scanner scanner = new Scanner(System.in);
    score = scanner.nextInt();
    
    System.out.printf("당신의 점수는 %d입니다%n",socre);
    
    if (score >= 90) {
    	grade = 'A';
        if (score >= 98) {
        opt = '+';
      } else of (score < 94) {
      	opt = '-';
     }
    } else if (score >=80) {
    	greade = 'B';
        if (score >= 88) {
     } opt = '+'; 
    } else if (score < 84) {
    	opt = '-';
    }
   } else {
   		grade = 'C';
   }	
   System.out.printf("당신의 학점은 %c%c입니다.%n" , grade, opt);
  }
 }

6.🔎Switch문

if문은 조건식의 결과가 참과 거짓, 두 가지 밖에 없기 때문에 경우의 수가
많아지면 else-if문을 계속 추가해줘야한다. 그러면 조건식이 복잡해지고 , 여러 개의
조건식을 게산해야하므로 시간이 굉장히 오래걸린다.
이러한 if문 과는 달리 Switch문을 이용하여 많은 경우의 수를 처리할 수 있다.
다만, Swtch문은 제약 조건이 있기 때문에 어쩔 수 없이 if문을 사용하는 경우가 있다


	switch (조건식1) {
   	case 1 : 
       		// 조건식의 결과가 1과 값이 같을 경우 수행될 문장들
               // ...
               break;
      	case 2 :
       		// 조건식의 결과가 2과 값이 같을 경우 수행될 문장들
               // ...
               break;
               
              //...
              default : 
             			// 조건식의 결과와 일치하는 case문이 없을 때 수행될 문장들
                       // ...
                       
}

***Switch문의 제약조건을 알아보자
1. switch문의 조건식 결과는 정수 or 문자열이어야 한다.
2. case문의 값은 정수 상수(문자 포함), 문자열만 가능하며,중복되지 않아야 한다.

6-1 제약조건 Ex)

	import java.util.Scanner;
    
   public static void(String[] args) {
   		
        System.out.print("현재 월을 입력하세요.");
        
        Scanner scanner = new Scanner(System.in);
        
        int month = scanne.nextInt();
        
        switch(month) {
        case 3:
        case 4:
        case 5:
        	System.out.println("현재의 계절은 봄입니다.");
            break;
        case 6: case 7: case8: 
        	System.out.println("현재의 계절은 여름입니다.");
            break;
        case 9: case 10: case 11:
        		System.out.println("현재의 계절은 가을입니다.");
            break;
            
            default: // 그외 
            	System.out.println("현재의 계절은 겨울입니다.");
           }
         }
   }

7.🔎임의의 정수만들기 Math.random()

난수(임의의 수)를 얻기 위해서는 Math.random()을 사용해야 하는데,
이 메서드는 0.0과 1.0사이의 범위에 속하는 하나의 double값을 반환한다.
0.0은 범위에 포함되고 1.0은 포함되지 않는다.

 	
    // 기본
    0.0 <= Math.random() < 1.0
	
    // 예시 1~3
    
    1. 각변에 3을 곱한다.
    0.0 *3 <= Math.random() * 3 < 1.0 * 3
    	
    2. 각변에 int형으로 변환한다.
        (int)0.0 <=  (int)(Math.random() *3) < (int) 3.0
        
    3. 각변에 1응 더한다.
    	
        0 + 1 <= (int)(Math.random()*3) +1 < 3+1 
        1 <= (int)(Math.random()*3)+1 < 4
        
     -->>> 1~3사이에 정수 중 하나를 얻을 수 있다 4는 포함되지 않는다.

7-1 Ex)


	class rd {
    
    	public static void main (String[] args) { 
        int num = 0;
        
        //{}안에 내용을 5번 반복한다.
        
        for( int i =1; i <=5 i++ ) {
        num = (int) (Math.random() *6 ) +1 ;
        System.out.println(num);
      }
  }
}

위와같이 반복문은 조건문은 나중에 굉장히 많이 쓰이는 걸로 알고있다.
많은 복습이 필요할꺼같고 자주 사용해봐야할꺼 같다.

profile
안녕하세요.

0개의 댓글

관련 채용 정보