본문 바로가기
자바(Java)

자바 입문하기2 - 조건문

by codeyaki 2022. 1. 6.
반응형

프로그래머스 강의를 들으며 정리한 것입니다.

https://programmers.co.kr/learn/courses/5

 

자바 입문

자바 입문 가장 널리 쓰이는 프로그래밍 언어 Java로 프로그래밍의 기초를 다져보세요. 이 강의의 내용을 책으로 만나고 싶으시면 여기를 눌러 책 정보를 확인하세요. 강의를 다 들었는데, 지금

programmers.co.kr


조건문

: 어떤 문장은 수행하고 싶고, 어떤 문장은 수행하고 싶지 않을 때 사용

 

IF 조건문 : 조건식의 연산 결과에 따라 블록 내부 문장의 실행 여부를 결정할 수 있다.

  • if 문 
    - 조건식이 true 일 경우에만 실행문이 실행
    - if(조건식) 다음의 { } 생략할 경우 실행문은 단 한 줄만 포함
    if(조건식){
    	실행문;
        실행문
    }​
  • if - else 문
    - 조건식이 true일 경우 if 블록의 실행문이 실행, false일 경우 else 블록의 실행문이 실행
    if(조건식){
    	실행문;
        실행문;
    }esle{
    	실행문;
    }​
  • if - else if - else 문
    - 처음 if문의 조건식의 조건문이 true일 경우 처음 if문의 블록이 실행되고, false일 경우 다음 조건식의 결과에 따라 실행 블록이 달라진다.
    - else if 문의 수는 제한이 없다. 그러나 너무 많은 else if문은 실행 속도가 저하됨
      (switch 문 사용으로 어느정도 대처 가능!)
    - 마지막 else블록은 생략돼도 상관없다.
    if(조건식){
    	실행문;
        실행문;
    }else if(조건식){
    	실행문;
    }else{
    	실행문;
    }​

    예시
    public class Datatype{
    	public static void main(String[] args) {
    		int a = 75;
    		if(a>90) {
    			System.out.println("점수가 90점 이상입니다.");
    		}else if(a>80){
    			System.out.println("점수가 80점 이상입니다.");
    		}else if(a>70) {
    			System.out.println("점수가 70점 이상입니다.");
    		}else {
    			System.out.println("낙제 하였습니다.");
    		}
    	}
    }​
    >>
    점수가 70점 이상입니다.

논리 연산자

: 논리 곱( &&, & ), 논리 합( ||, | ), 배타적 논리합( ^ ), 논리 부정( ! ) 연산 수행. 피연산자가 boolean타입만 사용 가능하며 결과 또한 boolean 값.

  • 논리 곱( &&, & ) : 피연산자가 모두 true일 경우에만 연산 결과가 ture
  • 논리합 ( ||, | ) : 피연산자 중 하나만 true이면 연산 결과는 true이다.
  • 배타적 논리합 ( ^ ) : 피연산자가 서로 다른 값일 경우만 연산 결과가 true이다.
  • 논리 부정 ( ! ) : 피연산자의 논리 값을 바꾼다. true는 false로 false는 true로 바꾼다.

 

boolean b1 = true;
boolean b2 = false;
boolean b3 = true;
System.out.println(b1 && b2); 	// false
System.out.println(b1 && b3); 	// true
System.out.println(b1 || b2); 	// ture
System.out.println(b1 ^ b2);  	// ture
System.out.println(b1 ^ b3);  	// false
System.out.println(!b1);	// false
System.out.println(!b2);	// true

파이썬에선 &와 &&( |와 ||)는 다른 연산인데 자바에서는 어떠한 가 해서 알아보았다.

찾아본 결과, 둘의 차이점은 &, |은 결과와 관계없이 피연 사자들의 조건들을 '모두' 검사한다는 것이다.

즉, &&은 피연산자 중 하나를 검사했을 때 false가 나온다면 바로 false를 출력하고

||은 하나가 true가 나온다면 바로 true를 출력해준다라는 차이점이 있다.


삼항 연산자

  • 조건식 ? 피연산자1 : 피연산자2
    - 조건식의 연산 결과가 true이면, 결과는 피연산자 1이고, 조건식의 연산 결과가 false이면 결과는 피연산자 2
    int b1 = ( 5>4 ) ? 50 : 40; // 조건식이 true이므로 b1 = 50​
  • 피연산자 1, 피연산자 2에는 주로 값이 오지만, 경우에 따라 연산 식이 올 수 있다.
  • if문으로 바꾸어 사용할 수 있다.
    int b2;
    if (5>4) {
    	b2 = 50;
    }else{
    	b2 = 40;
    }

switch 문

: 어떤 변수의 값에 따라서 문장을 실행할 수 있도록 하는 제어문

  • 사용 키워드 : switch, case, default, break
  • 문법
    swich(변수){
    	case 값1 :
        	실행문;
            break;
        case 값2 :
        	실행문;
            break;
        default;
    }​
     
  • 예시
        int value = 1;
    
        switch(value){
            case 1: 
                System.out.println("1");
                break;
            case 2:
                System.out.println("2");
                break;
            case 3 :
                System.out.println("3");
                break;
            default :
                System.out.println("그 외의 숫자");
        }
    >>
    1

 


break를 사용하는 이유?

switch문은 해당하는 case문만 실행하는 것이 아닌 해당되는 값에 있는 case부터 전부 실행시켜준다.

그러므로 break로 멈춰주지 않는다면 나머지 문장들이 전부 실행된다.

	    int value = 1;

	    switch(value){
	        case 1: 
	            System.out.println("1");
	        case 2:
	            System.out.println("2");
	        case 3 :
	            System.out.println("3");
	        default :
	            System.out.println("그 외의 숫자");
	    }

>>
1
2
3
그 외의 숫자

 

반응형