Day1 - 조건문, switch, equals 등

박경희·2023년 5월 22일
0

강의 복습 및 정리

목록 보기
2/28

.조건문.
1.

//조건문
public class Study5 {

    public static void main(String [] args){
        //벌레가 죽었나요
        //예 true 거짓 false
        
        boolean isDead = true; 
        if(isDead) {
            System.out.println("버린다"); 
        }else {
            System.out.println("죽인다");
        }

true를 넣으면 "버린다"가 출력됨.
false를 넣으면 "죽인다"가 출력됨.

        int i = 7; 
        if(i > 7){     
            System.out.println("if");
//        } else if (i == 7) { // i 가 7과 같냐?
//            System.out.println("elseif");
        } else {
            System.out.println("else");
        }

(먼저 else if문이 없다고 볼 때)
i > 7에서 7을 7보다 작은 수로 바꾼다면 i는 7보다 크다는 식이 성립하지 않기 때문에 'else'가 나온다. 7보다 큰 수로 바꾸면 'if'가 나온다.
여기서 중간에 else if를 넣으면
(i == 7)로 i가 7과 같은지를 직접 묻고 'int i = 7'로 선언한게 있기 때문에이게 참이여서 elseif가 출력된다.

  1. equals
String hi = "hi";
        String hi2 = hi + "1";
        if(hi2.equals("hi1")){ // equals로 써줘야 한다.
            System.out.println(true);
        }else {
            System.out.println(false);
        }

String hi는 문자열 "hi"와 같은지를 알아보는 것.
문자열을 비교할 때에는 equals를 넣어줘야 한다.

int a = 0;
        if(a + 2 == 0 + 1) { //한줄만 쓸 때에는 중괄호를 지울 수 있다.
            System.out.println("true");
        }else {
            System.out.println("false");
        }

수업시간에는 else문이 없었다. 숫자 2있는 부분이 1이면 true로 출력되지만 2로 바꿔 넣어보니 아무것도 출력이 되지 않았다. 그래서 else문을 넣으면 false를 나오게할 수 있을까 싶어서 넣어보니 1을 넣으면 true 그 외의 숫자로 바꾸면 false로 출력하는 것을 볼 수 있었다.

 String hi = "hi";
        String hi2 = hi + "1";
            Integer b = 0;
            Integer c = 0;
            if (b + 1 == c + 1) 
            // 같지 않을 때 true를 하고 싶다면 (a + 1 != b + 1)
                System.out.println(hi + "1");
                
                System.out.println(hi + "1" == "hi1"); 
                // 이건 주소값이 다르기 때문에 같은것이 아님. 
                //문자열 비교는 equals로 해야함
                
                System.out.println((hi + "1") .equals("hi1")); 
                //이건 문자열 비교. 똑같이 hi1이 나오기 때문에 true

------이건 내 생각. 틀렸음 ---------------------------------------
hi1
true 순으로 출력된다.
-> 왜 true냐?
hi + "1"은 hi2이고 "hi1"은 hi라고 처음에 변수 선언을 했다. 둘은 다른 것이기 때문에
!=(아니다)를 넣으면 '둘은 같은게 아니다'라는 뜻이 되므로 true가 출력되는 것.
만약 'hi + "1" == "hi1"을 넣는다면 false가 나온다.

-------이후에 물어봐서 찾은 답. ---------------------------------
System.out.println(hi + "1" == "hi1");
// 이건 주소값이 다르기 때문에 같은것이 아님. 문자열 비교는 equals로 해야함
System.out.println((hi + "1") .equals("hi1"));
//이건 문자열 비교. 똑같이 hi1이 나오기 때문에 true

  1. 삼항 연산자
 int p = 6;
        if(p%2 == 0){
            System.out.println("짝수");
        }else {
            System.out.println("홀수");
        }
        System.out.println(p % 2 == 0? "짝수" : "홀수"); //삼항연산자

p%2 == 0 은 'p를 2로 나눴을 때 0이 된다면'이라는 뜻.
이 때 0이 된다면 2의 배수라는 뜻.
그래서 0이 되면 짝수 0이 안되면 홀수가 되는 것이다.

이를 삼항 연산자로 바꾸면 맨 아래와 같다.

7.switch문

 int p = 6;
        switch (p % 5 ) {
            case 1:
                System.out.println("홀수");
                break;
            case 0:
                System.out.println("짝수");
                break;   // break가 빠지면 멈추지 않고 다음거 까지 출력한다.
            default:
                System.out.println("default");
                break;

p에 6을 변수로 선언.
p % 5 ---> p를 5로나눈 나머지값 출력=>1. 그러면 case 1이 되므로 "홀수"가 출력되고 break를 만나 끝난다. *break를 빼먹지 않게 주의!
5를 2나 3으로 바꾸면 6%2, 6%3 -> 나머지값이 모두 0이므로 case0 으로 가서
"짝수"출력.
그 외에 4와 같은 수로 넣으면 나머지가 2가 나오므로 case에 없어서 default가 출력된다.

0개의 댓글