초급의 끄적거림

[JAVA] 삼항연산자, 대입연산자 본문

JAVA

[JAVA] 삼항연산자, 대입연산자

codingD 2019. 8. 19. 13:08

[삼항연산자]

 (조건) ? 참 : 거짓
 항이 3개 : 조건 (boolean 형으로 반환), 참, 거짓
 단항, 이항
int a=3;                   //언사인드 값 (0<a), 사인드값
System.out.println(a*-1);  // 이항연산자
System.out.println(-a);    //단항연산자

 

 문) 임의의 값이 양수, 음수인지 확인하시오

int a=3;

//방법1>
String result=(a>0) ? "양수" : "음수";
System.out.println(a+" : "+ result);

//방법2>
result=(a<0) ? "음수" : "양수"
System.out.println(a+" : " + result);

 

 문) 임의의 값이 짝수, 홀수인지 확인하시오

int a=4;

//방법1>
String result=(a%2==0) ? "짝수" : "홀수";
System.out.println(a+":"+result);

//방법2>
result=(a%2!=0) ? "홀수" : "짝수";
System.out.println(a+":"+result);

 

 문) 절대값을 구하시오

int a=-3;
int abs=(a<0) ? -a : a;
System.out.println(a+"절대값 : " + abs);

 

 문) 윤년, 평년을 출력하시오

int y=2019;
String leap=(y%4==0 && y%100!=0 || y%400==0) ? "윤년" : "평년";
System.out.println(y+"년 :"+leap);

 

 문) 세 개의 수 중에서 최대값을 구하시오

int p=5, q=7, r=9;
int max=(p<q) ? q : p;
max=(r<max) ? max : r;
System.out.println(p+", "+ q + ", "+ r " 중 큰 값 :" + max);

 

 문) 대소문자를 서로 바꿔서 출력하시오 (주어진 글자가 대문자라면 소문자로, 소문자라면 대문자로)

   - 힌트 : 대문자 A부터 소문자 a까지 32가 차이남 

char ch='T'; 

//방법1>
char result = (ch>=97 && ch<=122) ? (char)(ch-32) : (char)(ch+32);
System.out.println(ch+":" +result);

//방법2>
char alpha=(ch>='A' && ch<='Z') ? (char)(ch+32) : (char)(ch-32);
System.out.println(ch+":"+alpha);

 

 

[대입연산자]

 +) 굳이 줄여쓰지 않아도 됨, 스스로 알아보기 쉬운 방법을 적어도 됨

int a=3;
a = a +2;               //변수는 후순위가 들어오기 때문에 다시 a를 사용할 수 있다
System.out.println(a);  //후순위가 들어오면서 a가 5가 되었음

a+=2;  //대입연산자를 줄여쓰는 방법, += 사이에 띄어쓰기 없이. a = a+2  와 a+=2 는 같은 말
System.out.println(a);  //5+2
		
a = a - 3;
System.out.println(a);  // 7-3=4
		
a -=3;                  // a = a-3 과 a-=3 은 동일한 표현
System.out.println(a);  //4-3=1

a *=5;                  //a= a*5 와 같은 의미
System.out.println(a);  //1*5 

a /=6;                  //a= a/6
System.out.println(a);  //몫을 구하는 나누기 연산자라서 5/6 = 0 

 

 1) 1 증가 연산자

a=a+1, a+=1, a++, ++a
int a = 3;
a= a+1;                  //3+1= 4
a+=1;                    //4+1 = 5
System.out.println(a);
	    
a++;                     //5+1
System.out.println(a); 
		
++a;                     //6+1
System.out.println(a);

 

 

2) 1 감소 연산자

a=a-1, a-=1, a--, --a
int a=3;
a=a-1;                   //3-1=2
a-=1;                    //2-1=1 
System.out.println(a);
	    
a--;
System.out.println(a);   //1-1=0
	    
--a;
System.out.println(a);   //0-1=-1

 


 

주의) 1 증감연산자는 계산식, 대입연산자와 함께 사용되는 경우!

int a=10, b=20;
int c=a++  
  //++이 뒤에 있으면 나중에 a 변수를 증가하라는 의미
  //int c=a, a값을 c에 먼저 집어 넣어서 c=100
  //a=a+1, a값은 +1을 한 11일 나옴

int d=--b;
  //먼저 b 변수값 감소
  //b=b-1, b는 20에서 1이 빠진 19이고
  //int d=b, d는 1이 빠지고 생성된 b의 값인 19가 된다

System.out.println(a);  //10 X  : 11
System.out.println(b);  //20 X  : 19
System.out.println(c);  //11 X  : 10
System.out.println(d);  //19

 

 예제) 

  ++x : x+1을 먼저 계산해 달라는 것. → x=x+1

          x+1이 된 x를 이용해서 int z=x*y 해결

          그 다음에 y-1을 해야함. y=y-1

int x=2, y=6;
int z=++x * y--;  

System.out.println(x);  //3
System.out.println(y);  //5
System.out.println(z);  //18

 

Comments