public class OperatorApp {
public static void main(String[] args) {
System.out.println("10+20*3="+(10+20*3));
System.out.println("(10+20)*3="+((10+20)*3));}}
피연산자의 갯수가 1개인 연산자
단항연산자 종류
public class OperatorApp {
public static void main(String[] args) {
int a1=10;
System.out.println("a1="+a1);
System.out.println("-a1="+-a1);
System.out.println("20 > 10 = "+(20>10));
System.out.println("!(20 > 10) = "+!(20>10));
int a2=10, a3=10;
System.out.println("a2 = "+a2+", a3 = "+a3);
//++a2; (저장해라) , a2=a2+1; (더해서 저장해라)
//--a3;, a3=a3-1; 도 가능하나 ++,--연산자를 사용하는 이유 : 가독성이 빠르기 때문
//대부분 연산자 피연산자 순서이나 ++ 연산자 또는 -- 연산자는 피연산자 뒤에 작성 가능
//연산식으로만 구현된 단일 명령인 경우 연산자의 위치는 연산결과에 미영향
a2++;
a3--;
System.out.println("a2 = "+a2+", a3 = "+a3);
//++ 연산자와 -- 연산자로만 구성된 단일 명령이 아닌 경우
// 즉, 대입연산자와 같이 사용할 경우 연산자의 위치는 연산 결과에 영향 미침
int a4=10, a5=10;
System.out.println("a4="+a4+ ", a5="+a5);
int result1=++a4; //전처리 : ++a4 연산식 실행 후 result1=a4 연산식 실행
int result2=a5++; //후처리 : result2=a5 연산식 실행 후 a5++ 연산식 실행
System.out.println("a4="+a4+ ", a5="+a5);
System.out.println("result1="+result1+ ", result2="+result2); }}
//결과 : result1=11, result2=10
피연산자의 갯수가 2개인 연산자
public class OperatorApp {
public static void main(String[] args) {
int b1=20, b2=10;
System.out.println(b1+"*"+b2+"="+(b1*b2));
System.out.println(b1+"/"+b2+"="+(b1/b2));
System.out.println(b1+"+"+b2+"="+(b1+b2));
System.out.println(b1+"-"+b2+"="+(b1-b2));
System.out.println(b1+"%"+b2+"="+(b1%b2)); }}
public class OperatorApp {
public static void main(String[] args) {
System.out.println("20>10="+(20>10));
System.out.println("20<10="+(20<10));
System.out.println("20==10="+(20==10));
System.out.println("20!=0="+(20!=10)); }}
1) Bit 논리 연산자, 2) 일반 논리 연산자
1) Bit 논리 연산자 : 정수값을 Bit 단위로 계산하기 위한 연산자
ex) & (논리곱), ^ (배타적 논리합)→캐럿이라고 읽음, | (논리합) →파이프라고 읽음
2) 일반 논리 연산자 : 비교 연산식을 연결하기 위한 연산자
ex) && (And), || (Or)
public class OperatorApp {
public static void main(String[] args) {
//int c=20;
int c=-20;
System.out.println("c="+c);
System.out.println("c>=10 && c<=30="+(c>=10 && c<=30));
System.out.println("c<10 || c>30="+(c<10 || c>30)); }}
public class OperatorApp {
public static void main(String[] args) {
int d=10;
System.out.println("d="+d); //결과 : 10
d+=20; //d=d+20; : (정수+정수) 연산시 실수로 형변환 일어남
System.out.println("d="+d); }} // 결과 : 30
public class OperatorApp {
public static void main(String[] args) {
int e1= 10, e2=20;
System.out.println("큰 값="+(e1>e2?e1:e2)); //결과 : 20
//int e3=10;
int e3=11;
System.out.println(e3+":"+(e3%2==0?"짝수":"홀수"));}}// : 홀수
public class OperatorApp {
public static void main(String[] args) {
//1. 가로의 길이가 7이고 세로의 길이가 10인 사각형의 넓이를 계산하여 출력하세요.
int garo=7, sero=10;
int nulbe=garo*sero;
System.out.println("사각형의 넓이="+nulbe);
//2. 높이가 9이고 밑변의 길이가 7인 삼각형의 넓이를 계산하여 출력하세요.
int h=9, ul=7;
double nul=(h*ul)/2.;
System.out.println("삼각형의 넓이="+nul);
//3. 10명의 전체 몸무게가 759Kg인 경우 평균 몸무게를 계산하여 출력하세요.
int n=10, sum=759;
double ave=(double)sum/n;
System.out.println("평균몸무게="+ave+"kg");
//4. 이름이 [홍길동]인 학생이 국어점수 89점, 영어점수 93점, 수학점수 95점을 받은 경우
//총점과 평균을 계산하여 이름, 총점, 평균을 출력하세요.
//단, 평균은 소숫점 한자리까지만 출력하고 나머지는 절삭 처리 하세요.
String name = "홍길동";
int kor = 89, eng=93, math=95;
int sum2=kor+eng+math;
double ave2=sum2/3.0;
System.out.println("이름="+name+", 총점="+sum2+", 평균="+((int)(ave2*10))/10.);}}
public class OperatorExample {
public static void main(String[] args) {
//1. 245678초를 일시분초 형식으로 변환하여 출력하세요.
int s=245678;
int day=s/(24*60*60); //하루는 24시간*60분*60초=86400초
s%=86400; //s=s%86400
int hour=s/(60*60);
s%=3600;
int min=s/60;
int sec=s%60;
System.out.println(day+"일"+hour+"시"+min+"분"+sec+"초");
//2. 한대의 가격이 1억 5천원만인 비행기를 20대 구매할 경우 지불해야될 금액을 출력하세요.
//단, 15대 이상 구매할 경우 1대당 25%의 할인율을 적용하여 계산하세요.
int price=150_000_000, n=20;
long sum=(long)(n>15?price*0.75:price)*n;
System.out.println("지불금액="+sum);}}