Java practice_240102

Choi Suyeon·2024년 1월 3일

6. 삼항(조건)연산자

  • 전항 ? 항1 : 항2
package day0102;
class Operator6 {
	public static void main(String[] args) {
		int num=1;
		System.out.println(num + "은(는)" + (num >=0 ? "양수":"음수"));
		//num이 홀수인지 짝수인지 판단하여 출력.
		System.out.println(num + "은(는)" + (num % 2 == 0 ? "짝수":"홀수"));

		//점수를 저장하는 변수를 선언하고, 임의의 값을 할당
		//할당된 값이 0~100사이라면 "유효점수"를 출력, 
		//그렇지 않다면 "무효점수" 출력.
        
		int score = 101;//-1, 0~100, 101 : 경계값 테스트
		System.out.println(score + "은(는)" + ((score >=0) && (score <=100)? "유효점수":"무효점수"));
        
        //더 깔끔하게 작성한다면?
		System.out.println(score + "은(는)" + ((score >-1) && (score <101)? "유효점수":"무효점수"));


	}//main
}//class

7. 대입연산자

  • =,
  • +=, -=, *=, /=, %=,
  • <<=, >>==, >>>=,
  • &=, |=, ^=
package day0102;//package는 가장 위에 한번만 선언.
class Operator7{
	public static void main(String[] args) {
		//순수대입
		int i = 11;
		i = 25;//기존의 값이 사라짐
		System.out.println(i);

		//산술 대입 : 기존의 값과 연산 후 연산 결과를 다시 변수에 할당
		i+=2;//i = i+2
		i-=20;//i = i-20
		i*=3;//i = i*3
		System.out.println(i);
		
		//쉬프트 대입
		i <<= 4;//0000 0010 << 4 = 0010 0000
		i >>= 1;//0010 0000 >> 1= 0001 0000
		i >>>= 2; //0001 0000 >>> 2= 0000 0100
		
		//비트논리대입
		i &= 20;//i = i & 20 //0000 0100 & 0001 0100 = 0000 0100
		i |= 0xf;//i = i | 15 //0000 0100 | 0000 1111 = 0000 1111
		i ^= 10;//i = i ^ 10 //0000 1111 ^ 0000 1010 = 0000 0101
		System.out.println(i);
	}//main
}//class

연습문제

package day0102;

public class Work0102 {

	public static void main(String[] args) {
		//1.두 정수를 저장할 수 있는 변수를 만들고, 임의의 값을 할당.
		//위의 변수 중에 큰 값을 반환하는 삼항 연산자 코드 작성
		int x = 10;
		int y = 30;
		System.out.println("x는 " + x + ", y는 " + y + "이다. 둘 중 " + (x > y? "x가 더 크다":"y가 더 크다"));
		
		//2.세개의 정수를 저장할 수 있는 변수를 만들고, 각각의 변수의 임의의 값을 할당
		//세개의 숫자 중 가장 작은 값을 찾아서 출력하는 코드를 만들기(삼항 연산자)
		int a = 1;
		int b = 2;
		int c = 3;
		System.out.println((a < b && a < c) ? a : (b < c ? b : c));
		int xx = (a < b) ? ((a < c) ? a : c) : ((b < c) ? b : c);
		System.out.println( xx + "이 가장 작다.");//삼항연산자 중첩가능
		
		//3. int temp1=10, temp2=20 이 할당된 변수를 선언하고 아래 코드를 작성했을 때 어떤 값이 출력되는지 예상해보고, 어떻게 그런 결과가 나왔는지 주석을 열고 간단히 작성.
		int temp1 = 10, temp2 = 20;
		System.out.println(++temp1 + temp2--);//temp1=11 temp2=프린트 후 19
		System.out.println("tmep1 : " + temp1 + " temp2: "+ temp2);
		
		//4.Integer.MAX_VALUE Constant를 사용하여 Integer의 하위 2byte값이 출력되도록 비트 논리연산자를 사용하여 출력(65535가 나와야함)
		int aa=Integer.MAX_VALUE;
		System.out.println(aa+ "의 하위 2byte 값: " + (Integer.MAX_VALUE&0x0000ffff));
	
	}//main

}//class

0개의 댓글