-산술연산자
+ | 덧셈 연산자 |
- | 뺄셈 연산자 |
* | 곱셈 연산자 |
/ | 나누기 연산자 |
% | 나머지 구하는 연산자. 정수 연산일때만 연산이 가능하다. |
-간단한 계산기
Scanner scan = new Scanner(System.in);
System.out.println("** 간단한 계산기 **");
System.out.println("===================");
int num1 = 0, num2 = 0, result = 0;
System.out.print("첫 번째 수 : ");
num1 = scan.nextInt();
System.out.print("두 번째 수 : ");
num2 = scan.nextInt();
result = num1 + num2;
System.out.println("덧셈 결과 : " + result);
result = num1 - num2;
System.out.println("뺄셈 결과 : " + result);
result = num1 * num2;
System.out.println("곱셈 결과 : " + result);
result = num1 / num2;
System.out.println("나눗셈 결과 : " + result);
result = num1 % num2;
System.out.println("나머지 : " + result);
같은 데이터 타입이면 ,로 여러개 한번에 사용할 수 있다.
-증감 연산자
단항 연산자이며, 변수의 좌측이나 우측 한 군데에만 온다.
++ | 1씩 증가 시키는 연산자 |
-- | 1씩 감소 시키는 연산자 |
예시)
int i = 0;
i++; //i에 있는 값을 불러와서 1을 더해준 뒤 다시 i에 대입한다.
이런 순서대로 발전함
1) i = i + 1;
2) i += 1;
3) i++;
-전위형, 후위형
int j = 0;
int k = 0;
int l = 0;
++j;
//k = j++; //값이 먼저 대입이 돼서 k가 0이 됨. 값을 꺼내서 사용하는걸 먼저하고 연산함
System.out.println("후위연산 : " + j);
j = 0;
//l = ++j; //증가하고 대입이 되기 때문에 1이 됨. 꺼내서 연산하고 대입하도록 사용됨
System.out.println("전위연산 : " + j);
System.out.println(k + ", " + l);
따로 계산 먼저하고 대입을 시키는게 더 편리하다.
-비교연산자
결과는 boolean으로 나오기 때문에 true, false로 나옴
크다, 작다, 같다, 같지않다. ('~~하다'라기 보다는 '~~냐?'라는 의문)
==, !=, >, >=, <, <=
int n1 = 4, n2 = 5;
System.out.println(n1 == n2);
System.out.println(n1 != n2);
System.out.println(n1 > n2);
System.out.println(n1 >= n2);
System.out.println(n1 < n2);
System.out.println(n1 <= n2);
boolean b = (n1 == n2);
System.out.println(b);
-논리연산자
결과는 boolean으로 나온다. true, false가 나오는 수식들을 연결하기 위해 사용한다.
AND(논리곱) | && |
OR(논리합) | || |
cf. &, | 하나만 사용할 경우, 비트연산자로 사용된다.
예시)메뉴 번호 1~4 이외의 값을 눌렀을 때 false가 나오는 프로그램
Scanner scan2 = new Scanner(system.in);
int number scan2.nextInt();
boolean bb = false;
bb = (number > 0) && (number < 5); //0과 5사이의 값이 들어오면 true
number++;
System.out.println(bb);
bb = (number > 0) && (number++ < 5);
bb = (number <= 0) || (number >= 5);
- && 앞이 거짓이면 연산 작동을 하지 않을 수도 있다. 오류가 발생하는 리스크를 줄이기 위해 논리연산 비교식에서는 증감 사용을 따로 사용하는 것이 효율적이다.
- 0과 5 사이의 값이 들어오면 false가 나온다.
-입력한 값이 숫자인지 문자인지 판별하는 프로그램
char ch = '\0'; //null(널) 문자로 초기화.비어있는 char 변수 생성
String str = sca2.next(); //문자열 입력받기
ch = str.charAt(0); //0번 위치에 있는 값 꺼내옴
boolean bbb = ((ch >= 'a') && (ch <= 'z')) //참이면 (소)문자
|| ((ch >= 'A') && (ch <= 'Z')) //참이면 (대)문자
System.out.println(bbb);
논리연산자 사용시 괄호로 묶어주지 않으면 순서가 꼬여버리기 때문에 괄호로 범위를 정해주어야한다.
-윤년계산기
System.out.println("=====윤년계산기====");
System.out.print("연도를 검색 > ");
int year = scan2.nextnt();
String result = null;
boolean yoon = (((year % 4) == 0)
&&((year % 100) != 0)) //99년가지는 여기로만 사용 가능함
||((year % 400) == 0);
윤년의 조건을 만족해야 한다.
1) 4년마다 한번씩 온다. 2) 100년마다 오지 않는다. 3)400년마다 온다.
-조건연산자
수식/변수/리터럴이 세개가 들어가는 삼항 연산자이다.
(조건식) ? A : B ; -> 조건식이 true일 경우 A 실행
조건식이 false일 경우 B 실행
-절대값 구하기(-10 => 10)
int x = -10;
int absX = 0; //구해진 절대값 저장하는 변수
absX = (x >= 0) ? x : -x ;
System.out.println(absX);
x에 입력된 값이 0보다 크거나 같으면 그대로 출력되고, 작으면 -되어 절대값으로 출력된다.
-학점 PASS FAIL 프로그램
x = scan2.nextInt();
String grade = (x >= 60) ? "PASS" : "FAIL" ;
System.out.println(grade);
-학점 프로그램 (중첩 사용)
x = scan2.nextInt();
grade = (x >= 90) ? "A":
((x >= 80) ? "B" : "C" );
System.out.println(grade);
'JAVA' 카테고리의 다른 글
0305 JAVA - 계산기 예제 실습(switch문, if문), switch문을 if문으로 변환 (0) | 2020.03.05 |
---|---|
0305 JAVA - 자습 과제 (0) | 2020.03.05 |
0304 JAVA - 조건문 if, switch (1) | 2020.03.04 |
0303 JAVA - 명명규칙, 변수, 상수, 리터럴, 형변환, 오버플로우 (1) | 2020.03.03 |
0302 JAVA - 데이터 종류, 변수, 계산기 실습(덧셈) (2) | 2020.03.02 |