[자바퀴즈] 퀴즈 4

1. 연산자의 결합방향과 우선순위에 대하여 설명하시오

2. 1 초과 100 미만인가? 를 코딩해라

int a = 11;
boolean result;
		
result = (a > 1) && (a < 100);
System.out.println(result);
=========================		
 true


3. 2의 배수 또는 3의 배수를 코딩해라

int a = 33;
boolean result;
		
result = (a % 2 == 0) || (a % 3 == 0);
System.out.println(result);
==========================
 true


4. && 와 || 설명하시오

    int num1 = 0;
    int num2 = 0;
    boolean result;
		
    result = ((num1 += 10) <0 ) && ((num2 += 10) > 0);
	    System.out.println("result = " + result);
	    System.out.println("num1 = " + num1);
	    System.out.println("num2 = " + num2 +'\n');
		
    result = ((num1 += 10) > 0) || ((num2 += 10) > 0);
	    System.out.println("result = " + result);
	    System.out.println("num1 = " + num1);
	    System.out.println("num2 = " + num2);
=========================================================
      result = false
	    num1 = 10
	    num2 = 0

	    result = true
	    num1 = 20
	    num2 = 0


5. 아래가 에러가 나는 이유를 설명하고, 수정하시오

short num1
short num = -num

num은 지금 어떠한값도 갖고 있지않다
2byte 공간만 가지고 있는 num이라는 방만 존재할뿐 num이라는 방안에는 초기화가 되지않음
따라서 값도 없는 공간에 -를 붙이니 수식이 아예틀림
num에 값을 대입해줘서 수정

// 수정
  short num = 3;
    short num1 = (short)-num;

6. 전위증가 연산자와 후위증가 연산자의 차이는?

7. 비트연산자 4가지를 설명하시오


8. 쉬프트 연산자에 대하여 설명하시오


9. 전위연산자와 후위연산자에 대하여 설명하시오

10. 아래의 출력값을 예측하시오

class AssignSteResult {
    public static void main(String[] args) {
        int num1 = 10, num2 = 20, num3 = 30;
        num1 = num2 = num3;

        System.out.println(num1);	
        System.out.println(num2);
        System.out.println(num3);
    }
}

▶ 30 / 30 / 30 (num1 , num2, num3 모두 값은 30)

why? 연산자는 결합 방향이 오른쪽에서 왼쪽으로 진행된다
따라서 위의 문장은 다음과 같다
num1 = (num2 = num3);


11. 아래의 출력값을 예측하시오

class SCE {
    public static void main(String[] args) {
        int num1 = 0; 
        int num2 = 0;
        boolean result;

        num1 += 10;
        num2 += 10;        
        result = (num1 < 0) && (num2 > 0);

        System.out.println("result = " + result);
        System.out.println("num1 = " + num1);
        System.out.println("num2 = " + num2 + '\n');
		
        num1 += 10;
        num2 += 10;        
        result = (num1 > 0) || (num2 > 0);

        System.out.println("result = " + result);
        System.out.println("num1 = " + num1);
        System.out.println("num2 = " + num2);
    }
}


result = false
num1 = 10
num2 = 10

result = true
num1 = 20
num2 = 20


12. 아래의 출력값을 예측하시오

class AddNum {
    public static void main(String[] args) {
        int result = 3 + 6;    
        System.out.println("3 + 6 = " + result);
        
        result += 9; 
        System.out.println("3 + 6 + 9 = " + result);
        
        result += 12;
        System.out.println("3 + 6 + 9 + 12 = " + result);
    }
}

▶ 3 + 6 = 9
3 + 6 + 9 = 18
3 + 6 + 9 + 12 = 30