초급의 끄적거림

[JAVA] 연산자 연습 (산술, 비교, 논리 연산자) 본문

JAVA

[JAVA] 연산자 연습 (산술, 비교, 논리 연산자)

codingD 2019. 8. 19. 10:07

[연산자]

 ⊙ 이식성이 풍부하다

 ⊙ 종류 : 산술, 비교, 논리

 ⊙ 연산자 우선 순위 : 산술 > 비교 > 논리

   - 최우선 연산자 : (  ) 괄호

   - 후순위 연산자 : =

 

 

 1) 산술 연산자

System.out.println(3+5-8);  //0
System.out.println(2/4*6);  //0 → 2 나누기 4는 0이고 0*6 = 0
System.out.println(1+3/5);  //1 → 3나누기 5는 0이고 1+0=1
		
System.out.println(5%3);    //2 → %는 나머지를 구하는 연산자
System.out.println(3%5);    //3

  

  /

 나누었을 때 몫을 구하는 연산자

  %

 나누었을 때 나머지를 구하는 연산자

 

 

 2) 비교(관계) 연산자

  ⊙ boolean 형으로 결과값이 반환된다. (true/false 두 가지 중 하나로 답이 나옴)

System.out.println(5<3);   //false
System.out.println(5>3);   //true
System.out.println(5<=3);  //false 
System.out.println(5>=3);  //true
System.out.println(5==3);  //false
System.out.println(5!=3);  //false

 A == B

 A와 B가 같다

 A != B

 A는 B와 같지 않다

 

 

 문1) 임의의 정수가 짝수(2로 나눠서 나머지가 0인 수)인지 확인하시오

  - 결과 : true

int a = 4;
System.out.println(a%2==0);  //2로 나누면 나머지는 0과 1만 가능.
System.out.println(a%2!=1);

 

 문2) 해당년도가 윤년인지 확인하시오 (제대로 배우지 않고 간단히 하는 경우)

  - 결과 : false

int y 2019;
System.out.println(y%4==0);

 

  ※ 제대로 배운 경우 (https://ninearies.tistory.com/42 참고)

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

 

 

 문3) 임의의 문자가 'R'인지 확인하시오

  - 결과 : false

char ch='r';
System.out.println(ch=='R');

 

 문4) 지폐 개수를 구하시오

  - 결과 : 만원 4장, 천원 5장, 백원 6개, 십원 3개

  ⊙ 방법1>

int money=45630;
System.out.println("만원" + money/10000 + '장');
System.out.println("천원" + money%10000/1000 + '장');
System.out.println("백원" + money%10000%1000/100 + '개');
System.out.println("십원" + money%10000%1000%100/10+ '개');

 

  ⊙ 방법2>

int money = 45630;
int m, c, b, s;
m= money/10000;
money=money%10000;
c=money/1000;
money=money%1000;
b=money/100;
money=money%100;
s=money/10;

System.out.println("만원"+m+"장");
System.out.println("천원"+c+"장");
System.out.println("십원"+b+"개");
System.out.println("백원"+s+"개");

 

 

 3) 논리연산자

  ⊙ 1개 이상의 조건을 전체적으로 판단

  ⊙ boolean 형으로 결과값 반환 (true / false)

  ⊙ AND, OR, NOT

 AND 연산 (논리곱)

 &&

 그리고, ~이면서

 주어진 조건이 모두 참이면 전체판단 참

 주어진 조건이 하나라도 거짓이면 전체판단 거짓

 

 문제1) 임의의 정수가 2의 배수이면서 5의 배수인지를 확인하시오

int a=5;
//방법1>
System.out.println((a%2==0) && (a%5==0));

//방법2>
System.out.println(a%10==0);

 

 

 OR 연산 (논리합)

 ||

 또는, ~이거나

 주어진 조건이 하나라도 참이면 전체판단 참

 

 문제2) 임의의 문자가 알파벳 'R', 'r'인지 확인하시오

char ch='R';
System.out.println((ch=='R') || (ch=='r'));

 

 

 NOT 부정연산자

 !

 아니라면

boolean flag=false;
System.out.println(flag);  //false
System.out.println(!flag); //true

 

Comments