연산자의 종류
* 최우선 연산자(직접접근연산자) : 괄호() 점. 중괄호{}
* 단항 연산자 : 느낌표(!), 형변환연산자(자료형), 증가연산자(++), 감소연산자(--)
* 이항 연산자
1. 산술연산자
- 곱하기(*), 나누기(몫, /), 나누기(나머지, %)
- 더하기(+), 빼기(-)
2. 비교연산자
- 크다(>), 작다(<), 크거나 같다(>=), 작거나 같다(<=)
- 같다(==), 다르다(!=)
3. 논리연산자
- 그리고(&&), 또는(||)
- 삼항 연산자 : (조건식)? 참일때의 사용값 : 거짓일때의 사용값
- 대입연산자
1. 순수 대입 : =
2. 산술 대입 : +=, -=, *=, /=, %=
- 나열 연산자 : 쉼표(,)
산술연산자
* 이항연산자로, 연산방법과 우선순위가 기존의 수학에서의 사칙연산과 같다
* 종류 : +, -, *, /, %(Modular)
package com.kh.operator;
public class A_Arithmetic {
public void method1() {
int num1 = 10;
int num2 = 3;
System.out.println("num1 + num2 = " + num1 + num2);
System.out.println("num1 + num2 = " + (num1 + num2));
System.out.println("num1 - num2 = " + num1 - num2);
System.out.println("num1 - num2 = " + (num1 - num2));
int result = num1 + num2;
System.out.println("result = " + result);
System.out.println("num1 * num2 = " + (num1*num2));
System.out.println("num1 / num2 = " + (num1/num2));
System.out.println("num1 % num2 = " + (num1%num2));
System.out.println(10 / 0);
System.out.println(10 % 0);
double a = 35;
double b = 10;
System.out.println("a + b= "+(a+b));
System.out.println("a - b= "+(a-b));
System.out.println("a * b= "+(a*b));
System.out.println("a / b= "+(a/b));
System.out.println("a % b= "+(a%b));
}
}
증감연산자
* 단항연산자로, 한번에 값을 1씩 증가시키거나 감소시키는 연산자이다.
* 종류 : ++(전위, 후위 증가), --(전위, 후위 감소)
* 연산자의 위치에 따라, 연산이 언제 될지 결정한다.
* (증감연산자)값 : 연산이 먼저 되고, 값을 처리한다 => 선증감 후처리
* 값(증감연산자) : 값을 먼저 처리하고, 연산을 한다 => 선처리 후증감
package com.kh.operator;
public class B_InDecrease {
public void method1() {
int num = 10;
System.out.println("num : "+num);
num++;
System.out.println("변경된 num : " +num);
num--;
System.out.println("변경된 num : " +num);
}
public void method2() {
int a = 10;
int b = ++a;
System.out.println("a : "+a+", b : "+ b);
int c = 10;
int d = c++;
System.out.println("c : "+c+", d : "+ d);
}
public void method3() {
int num1 = 20;
int result1 = num1++ * 3;
System.out.println("num1 : " + num1);
System.out.println("result1 : " + result1);
int num2 = 20;
int result2 = ++num2 * 3;
System.out.println("num2 : " + num2);
System.out.println("result2 : "+result2);
int num3 = 10;
int result3 = --num3 * 5;
System.out.println("num3 : "+ num3);
System.out.println("result3 : "+result3);
int num4 = 10;
int result4 = num4--*5;
System.out.println("num4 : "+num4);
System.out.println("result4 : "+result4);
}
}
복합대입연산자
* 산술연산자와 대입연산자를 함께 사용하는 연산자
* 종류 : +=, -=, *=, /=, %=
package com.kh.operator;
public class C_Compound {
public void method1() {
int num = 12;
System.out.println("현재 num : " + num);
num = num + 3;
System.out.println("증가된 num : " + num);
num += 3;
System.out.println("또 증가된 num : "+num);
num -= 5;
System.out.println("감소된 num : "+num);
num *= 6;
System.out.println("배가된 num : "+num);
num /= 2;
System.out.println("나눠진 몫 num : "+num);
num %= 4;
System.out.println("나눠진 나머지 num : " + num);
String str = "Hello";
str += "World";
System.out.println(str);
}
}
논리부정 연산자
* true 또는 false라는 논리값을 반전시켜주는 연산자
* 논리부정연산자는 이처럼 논리값에 대한 연산을 적용한다.
* 종류 : !(느낌표)
package com.kh.operator;
public class D_LogicalNegation {
public void method1() {
System.out.println("True의 부정 : " + !true);
System.out.println("False의 부정 : "+ !false);
boolean b1 = true;
boolean b2 = !b1;
System.out.println("b1의 부정 : "+b1);
System.out.println("b2의 부정 : "+b2);
}
}
비교연산자(관계연산자)
* 두개의 값을 비교하는 이항 연산자
* 비교 연산 결과가 참일 경우 true, 거짓일 경우 false를 반환한다.
* 특정 조건을 제시하는 조건문에 사용된다.
* 종류
1. 크고 작음을 비교(숫자, 문자) : >, <, >=, <=
2. 같음을 비교(숫자, 문자, 주소값, 논리값) : ==, !=
package com.kh.operator;
import java.util.Scanner;
public class E_Comparison {
public void method1() {
int a = 10;
int b = 25;
System.out.println("b가 a보다 큽니까? " + (a < b));
System.out.println("a가 b보다 큽니까? " + (a > b));
System.out.println("a가 b보다 작거나 같습니까? " + (a <= b));
System.out.println("a가 b보다 크거나 같습니까? " + (a >= b));
boolean result1 = (a == b);
System.out.println("result1 : " + result1);
boolean result2 = (a != b);
System.out.println("result2 : " + result2);
boolean result3 = 3 + 5 < 1;
System.out.println("result3 : " + result3);
System.out.println("a가 짝수입니까? " + ((a % 2)==0) );
System.out.println("a가 홀수입니까? " + ((a % 2)==1) );
System.out.println("b가 짝수입니까? " + ((b % 2)==0) );
System.out.println("b가 홀수입니까? " + ((b % 2)==1) );
System.out.println("b가 짝수가 아닙니까? " + ((b % 2)!=0) );
}
public void method2() {
Scanner sc = new Scanner(System.in);
System.out.print("정수의 값 :");
int iNum = sc.nextInt();
sc.nextLine();
System.out.println("해당 값이 양수입니까? : " + (iNum > 0) );
System.out.println("해당 값이 짝수입니까? : " + ((iNum % 2) == 0) );
}
}
논리연산자
* 이항연산자로, 두개의 논리값을 연산하는 연산자
* 종류 : &&(AND, 둘다 참일때 true), ||(OR연산자, 둘중 하나만 참이어도 true)
package com.kh.operator;
import java.util.Scanner;
public class F_Logical {
public void method1() {
Scanner sc = new Scanner(System.in);
System.out.print("정수 값 : ");
int num = sc.nextInt();
sc.nextLine();
boolean result = ((num > 0) && (num % 2 == 0));
System.out.println("정수값이 양수이면서 짝수인가 ? "+result);
}
public void method2() {
Scanner sc = new Scanner(System.in);
System.out.print("정수 값 : ");
int num = sc.nextInt();
sc.nextLine();
boolean result = ((1 <= num && num <= 100));
System.out.println("정수값이 1이상 100이하인가? "+result);
}
public void method3() {
Scanner sc = new Scanner(System.in);
System.out.print("계속하시려면 y 또는 Y를 입력하시오 : ");
char ch =sc.nextLine().charAt(0);
boolean result = ((ch == 'y') ||(ch =='Y'));
System.out.println("사용자가 입력한 값이 y 또는 Y인가? " + result);
}
public void method4() {
int num1 = 10;
boolean result1 = false && (num1 > 0);
System.out.println("result1 : "+result1);
boolean result2 = true || (num1 > 0);
System.out.println("result2 : "+result2);
}
}
삼항연산자
* 세 개의 항목(피연산자)를 가지고 연산하는 연산자
* 표현법 : (조건식)? 참일때의 값, 거짓일때의 값
* 조건식의 결과값은 true, false만 나온다.
* 논리부정연산자, 비교연산자, 논리연산자를 조건식에 쓸 수 있다.
package com.kh.operator;
import java.util.Scanner;
public class G_Triple {
public void method1() {
Scanner sc = new Scanner(System.in);
System.out.print("정수 값 : ");
int num = sc.nextInt();
sc.nextLine();
String result = (num > 0)? "양수입니다." : "양수가 아닙니다.";
System.out.println(num+"은 "+result );
}
public void method2() {
Scanner sc = new Scanner(System.in);
System.out.print("정수 값 : ");
int num = sc.nextInt();
sc.nextLine();
String result = (num % 2 == 1)? "홀수입니다." : "짝수입니다.";
System.out.printf("%d은 %s", num , result);
}
public void method3() {
Scanner sc = new Scanner(System.in);
System.out.print("영문자 : ");
char ch = sc.nextLine().charAt(0);
String result = (65 <= (int)ch && (int)ch <=90 )?
"대문자입니다" : "대문자가 아닙니다.";
String result = (('A'<=ch) && (ch <='Z'))?
"대문자입니다." : "대문자가 아닙니다.";
System.out.printf("%c은 %s",ch,result);
}
public void method4() {
Scanner sc =new Scanner(System.in);
System.out.print("정수 값 : ");
int num = sc.nextInt();
sc.nextLine();
String result = (num > 0)? "양수입니다"
: (num == 0)? "0입니다" : "음수입니다.";
System.out.printf("%s",result);
}
}