본문 바로가기

[JAVA]

[JAVA]9월 8일 논리 연산자, 삼항 연산자, 비트 연산자, 형변환, 축소변환, 확대변환

*논리 연산자

 

  논리 연산자 예제.

 

public class Test {
 public static void main(String[] args){
  

  int x = 3;
  int y = 4;

  System.out.println((x == 3) && (y == 7));    && :  둘다 참이어야 참
  System.out.println((x == 3) || (y == 4));    || :   둘중 하나만 참이어도 참

실행 결과

false

true

 

*삼항 연산자

condition ? exp1 : exp2

·condition이 참이면 exp1이 선택되고 그렇지 않으면 exp2가 선택된다.
·() max_value = (x > y) x : y;// 최대값 계산

 

 삼항 연산자 를 활용한 예제. 입력받은 숫자가 짝수인지 홀수인지 말해주는 예제!

public class Test {
 public static void main(String[] args){
  Scanner scan = new Scanner(System.in); //사용자한테 입력받아야 하니까 Scanner 등록!
  int a;
  String result;
  String msg = "odd";
  String msg1 = "even";
  System.out.println("숫자를 입력 하세요.");
  a = scan.nextInt();
  result = (a % 2 == 1) ? msg : msg1;

          //입력받은 숫자를 2로 나눠서 나머지가 1이면 홀수, 나머지가 0이면 짝수.

          //그러니까 홀수를 입력하면 msg, 짝수를 입력하면 거짓이니까 msg1.
  System.out.println(result);

}

}

 

*비트 연산자

 

비트 연산자를 활용한 예제!

public class Test {
 public static void main(String[] args){

          int x = 0x0fff;
  int y = 0xfff0;
  System.out.printf("%04x\n", (x & y));
  System.out.printf("%04x\n", (x | y));
  System.out.printf("%04x\n", (x ^ y));
  System.out.printf("%04x\n", ~x);
  System.out.printf("%04x\n", (x << 4));
  System.out.printf("%04x\n", (x >> 4));
  Scanner scan = new Scanner(System.in);

}

}

실행결과

        0ff0
ffff
f00f
fffff000
fff0
00ff

 

*형변환

 

·형변환(cast)는 어떤 자료형의 값을 다른 자료형의 값으로 바꾸어 주는 연산

y = (double)x;

 

*축소 변환

i = (int) 12.5;; //i에는 12만 저장.

위에 예제는 소수점 이하는 사라진다.

 

*확대 변환

더 큰 크기의 변수로 값을 이동하는 변환.

double d = (double)100; // 정수 100이 변수 d에 100.0으로 형변환 되어서 저장.

 

확대 축소 변환을 이용한 예제.

public class Test {
 public static void main(String[] args){
  int i;
  double f;
  f = 5 / 4;
  System.out.println(f);
  f = (double) 5 / 4;
  System.out.println(f);
  f = 5 / (double)4;
  System.out.println(f);
  f = (double) 5 / (double) 4;
  System.out.println(f);
  i = (int)1.3 + (int)1.8;
  System.out.println(i);

}

}

실행결과

        1.0
1.25
1.25
1.25
2