Jun's Blog

[Java] 연산자(간단 문제) 본문

Java

[Java] 연산자(간단 문제)

Fizzyelf 2020. 9. 7. 23:05

1. int형 변수 number를 선언하고 30의 값으로 초기화하여라.

  int number = 30;

 

 

2. char형 변수 ch를 선언하고 'C'의 값으로 초기화하여라.

  char ch = 'C';

 

 

3. 다음의 출력 결과를 작성하여라.

  int result = number++ + 3 + ++ch + ++number;
  System.out.println("number : " + number);
  System.out.println("ch : " + ch);
  System.out.println("result : " + result);

풀이 : 

int result = number++ + 3 + ++ch + ++number;

               //30++
               //31          + 3 +      D +       32
               //65+D     , D = 68
               //= 133


1. int형 타입을 가지는 변수 a는 10의 값으로, 변수 b는 8의 값으로 초기화하여라.

  int a = 10;
  int b = 8;

 

 

2. 변수 share를 선언하고 a를 b로 나눗셈한 결과로 초기화하여라.

  int share = a / b;

 

 

3. 변수 remain을 선언하고 a를 b로 나눈 나머지로 초기화하여라.

  int remain = a % b;

 

 

4. 위 변수 4개를 활용하여 아래와 같이 출력하여라.

   

   xxx를 xxx로 나눈 몫은 xxx이고 나머지는 xxx이다.

  System.out.println(a+"을 "+b+"로 나눈 몫은 "+share+"이고 나머지는 " + remain+"이다.");

 


1. 변수 f1을 선언하고 0.1f의 값으로 초기화하여라.

  float f1 = 0.1f;

 

 

2. 변수 f2를 선언하고 10.0f의 값으로 초기화하여라.

  float f2 = 10.0f;

 

3. 변수 d1을 선언하고 01의 값으로 초기화하여라.

  double d1 = 0.1;

 

 

4. 변수 d2을 선언하고 10.0의 값으로 초기화하여라.

  double d2 = 10.0;

 

 

5. 변수 s를 선언하고 "자바"의 값으로 초기화하여라.

  String s = "자바";

 

 

6. 변수 f1과 d1의 값은 같은지에 대해 결과를 출력하여라.

  System.out.println(f1==d1);

 

 

7. 변수 f2와 d2의 값은 같은지에 대해 결과를 출력하여라.

  System.out.println(f2==d2);

 

 

8. s의 값이 "자바"와 값이 같은지에 대해 결과를 출력하여라.

  System.out.println(s.equals("자바"));

다음 연산 결과를 적으시오.

  int x = 2;
  int y = 5;
  char c = 'A';	// 'A'의 문자코드 65
  System.out.println(1 + x << 33);
  // 3 << 33
  // 3 X 2 X 2^32
  // 정답은 6
		
  System.out.println(y >= 5 || x < 0 && x > 2);
  // 5>=5 또는 2<0 그리고 2>2
  // '&&'이 '||'보다 연산 우선순위가 높다.
  // 2 < 0 && 2 > 2 ====>> false
  // 5>=5   ===> true
  // true || flase 
  // ==>> true
		
  System.out.println(y += 10 - x++);
  // 증감연산자가 먼저 우선 순위로 계산을 해야한다.
  // x는 2로 계산이 되고, 3의 값이 저장된다.
  // 10에서 2를 빼면 8이고, 그렇게 된다면 y = 5+8이 된다
  // 그래서 답은 13
	
  System.out.println(x += 2);
  // x += 2  (x=2)
  // 단, 위의 식과 같이 x++에 대입 후 계산을 해줘서 3으로 계산이 된다.
  // x = 3+2
  // x = 5
		
  System.out.println( !('A' <= c && c <= 'Z') );
  // 'A' <= c   ==>> true
  // c <= 'Z'  ==>> true
  // true && true ==> true
  // !ture 이라면 '!'는 논리부정연산자로써 반대를 의미하기 때문에 값이 반대로 바뀐다.
  // 그래서 정답은 false
		
  System.out.println('C' - c);
  // c = 'A';
  // 4byte 보다 작은 타입들은 int로 변환해야 한다.
  // char - char = int - int =>> int
  // 'C' - 'A'
  // ASCII CODE로 나타낸다면 , A = 65, C = 67
  // 67 - 65 = 2
		
  System.out.println('5' - '0');
  // 4byte 보다 작은 타입들은 int로 변환해야 한다.
  // char - char = int - int =>> int
  // '5' - '0'
  // ASCII CODE로 나타낸다면 , 0 = 48, 5 = 53
  // 53 - 48 = 5
		
  System.out.println(c+1);
  // c = 'A';
  // char + int = int + int ==> int
  // ASCII CODE로 A = 65
  // 65 + 1 = 66
		
  System.out.println(++c);
  // ++c는 전위증감연산자로 c의 값에 1을 증가시킨다.
  // 단, 증감연산자들은 단항 연산자로써 int로 변환되지 않는다.
  // c = 'A';
  // 문자 값이 그대로 먼저 저장시키고 출력한다.
  // 정답은 B
		
  System.out.println(c++);
  //c++는 후위증감연산자로써 c의 값을 1증가시킨다.
  // 후위형인 경우에는 변수 c가 출력되고 난 후에 c에 저장된 값이 증가된다.
  // 그래도 값은 B가 나온다
		
  System.out.println(c);
  // 위 문제에서 출력이 끝나고 c에 저장된 값이 증가했다.
  // 그러므로 c가 나온다.
		

                                                                                                                  <문제 출처> java의 정석에서..

Comments