쌍용교육(JAVA)/JAVA

쌍용교육 -JAVA 수업 2~3일차 Operator연산자

구 승 2024. 4. 11. 16:51
package kr.s02.operator;

public class OperatorMain01 {
	public static void main(String[] args) {
		System.out.println("====증감연산자====");
		//증가연산자
		int i = 5;
		//증가연산자를 변수명 앞에 명시하면 변수값을 1 증가 시킨 후에 증가 된 값을 읽어옴.
		System.out.println(++i);//6
		System.out.println("=================");
		
		//증가연산자를 변수명 뒤에 명시하면 변수값을 우선 읽어온 후 값을 1 증가시킴
		System.out.println(i++);//6 
		System.out.println(i); //7
		
		System.out.println("=================");
		
		//감소연산자
		int j = 10;
		
		//감소연산자를 변수명 앞에 명시하면 변수값을 1 감소시킨 후 감소된 값을 읽어옴
		System.out.println(--j);//9
		
		System.out.println("=================");
		//감소연산자를 변수명 뒤에 명시하면 변수값을 우선 읽어온 후 변수의 값을 1 감소시킴
		System.out.println(j--);//9
		System.out.println(j);//8
	}
}

====증감연산자====
6
=================
6
7
=================
9
=================
9
8

package kr.s02.operator;

public class OperatorMain02 {
	public static void main(String[] args) {
		System.out.println("===산술연산자===");
		
		System.out.println(1+1);
		System.out.println(10*3);
		System.out.println(10/3); //몫 구하기
		System.out.println(10%3); //나머지 구하기
		System.out.println("=================");
					  //double / int  -> double 자동적으로 형변환
		System.out.println(10.0/3);
					  //double / int  -> double 자동적으로 형변
		System.out.println(2.4*4);
	}
}
    
===산술연산자===
2
30
3
1
=================
3.3333333333333335
9.6

package kr.s02.operator;

public class OperatorMain03 {
	public static void main(String[] args) {
		/*
		 * [실습]
		 * 변수 선언시 자료형은 모두 int로 지정하고
		 * 변수 korean,english,math를 선언하고 90,95,88로
		 * 초기화한다.
		 * 총점을 구해서 변수 sum에 저장, 평균을 구해서 변수 avg에 저장
		 * 
		 * 
		 * [출력예시]
		 * 국어:90점
		 * 영어:95점
		 * 수학:88점
		 * 총점:  점
		 * 평균:  점
		 */
		
		int korean = 90;
		int english =95;
		int math = 88;
		
		int sum = korean+english+math;
		int avg = (korean+english+math)/3;
		
		
		System.out.printf("국어:%d점%n", korean);
		System.out.printf("영어:%d점%n" , english);
		System.out.printf("수학:%d점%n" , math);
		System.out.printf("총점:%d점%n" , sum);
		System.out.printf("평균:%d점%n" , avg);
		
		//System.out.println("국어:"+korean +"점");
	
	}
}

국어:90점
영어:95점
수학:88점
총점:273점
평균:91점

package kr.s02.operator;

public class OperatorMain04 {
	public static void main(String[] args) {
		/*
		 * [숙제]
		 * pinos71@daum.net 보내기.
		 * 
		 * 534자루의 연필을 30명의 학생들에게 똑같은 개수로 나누어 줄 때
		 * 학생당 몇 개 를 가질 수 있고, 최종적으로 몇 개가 남는지를 구하시오.
		 * 
		 * 
		 * [출력예시]
		 * 학생 한 명이 가지는 연필수 : 17
		 * 남은 연필수:24
		 */
		int pen = 534;
		int people = 30;
		
		int avg = pen/people;
		int remain = pen%people;
		
		System.out.println("학생 한 명이 가지는 연필수:"+ avg);
		System.out.println("남은 연필수:"+ remain);
		
		System.out.printf("학생 한 명이 가지는 연필수:%d%n남은 연필수:%d%n", avg,remain);
	}
}

학생 한 명이 가지는 연필수:17
남은 연필수:24
학생 한 명이 가지는 연필수:17
남은 연필수:24

package kr.s02.operator;

public class OperatorMain05 {
	public static void main(String[] args) {
		//입력작업 시작
		java.util.Scanner input = 
				new java.util.Scanner(System.in);
		
		System.out.print("국어:");
		//입력된 정수를 변수에 대입
		int korean = input.nextInt(); //입력받는 함수, nextInt()는 정수값만 받는 함수
		
		System.out.print("영어:");
		int english = input.nextInt();
		
		System.out.print("수학");
		int math = input.nextInt();
		
		//총점 구하기
		int sum = korean+english+math;
		//평균 구하기
		double avg = sum/3.0; //3.0이 아닌 3으로 표기를 한다면 평균뒤에 소수점의 결과값이 제대로 안나옴.	
		
		System.out.printf("국어: %d%n", korean);
		System.out.printf("영어: %d%n", english);
		System.out.printf("수학: %d%n", math);
		System.out.printf("총점: %d%n", sum);
		System.out.printf("평균: %.2f%n", avg);
		//입력작업 끝     
		input.close();
	}
}

국어:90
영어:80
수학70
국어: 90
영어: 80
수학: 70
총점: 240
평균: 80.00

package kr.s02.operator;

public class OperatorMain06 {
	public static void main(String[] args) {
		System.out.println("==비교(관계)연산자===");
		boolean result;
		int a = 10;
		double b = 10.5;
		
		result = a < b; // <는 비교연산자(4순위), = 은 대입연산자(8순위)
		System.out.println("a<b:"+result);
		
		result = a > b;
		System.out.println("a>b:"+result);
		
		result = a >= b;
		System.out.println("a>=b:"+result);
		
		result = a <=b;
		System.out.println("a<=b:"+result);
		
		result = a==b;
		System.out.println("a==b:"+result);
		
		result = a!=b;
		System.out.println("a!=b:"+result);
	}
}

==비교(관계)연산자===
a<b:true
a>b:false
a>=b:false
a<=b:true
a==b:false
a!=b:true

package kr.s02.operator;

public class OperatorMain07 {
	public static void main(String[] args) {
		System.out.println("===논리연산자===");
		boolean a,b,result;
		a =true;
		b =false;
		
		//논리곱(&&)
		//주어진 조건들이 모두 true 일 때  결과값이 true가 되는 것
		result = a && b;
		System.out.println("a && b :"+ result);
		
		//논리합(||)
		//주어진 조건 중 하나라도 true 이면 결과값이 true
		
		result = a || b;
		System.out.println("a || b:" + result);
		
		//부정(!)
		//true를 부정하는 false, false를 부정하면 true
		result = !a;
		System.out.println("!a:"+result);
		
		
	}	
}

===논리연산자===
a && b :false
a || b:true
!a:false

package kr.s02.operator;

public class OperatorMain08 {
	public static void main(String[] args) {
		
		/*
		 * 논리곱(&&)
		 * 선조건 &&  후조건			결과
		 * true		true 		true
		 * true		false		false	
		 * true		false		false
		 * false --(후조건 미실행)-->false
		 * 
		 * 
		 * 논리합(||)
		 * 선조건 || 후조건
		 * true --(후조건 미실행)--> true
		 * false	true		true
		 * false	false		false
		 */
		//증감 연산자, 비교연산자, 논리연산자
		int a,b;
		a = b =10;
		
		boolean c = a++ >= ++b && ++a > b++;
				   //10     11     11   10
				  //후조건을 실행을 안했기 때문에 11,11이 나옴
		System.out.println(a + "," +b);
		System.out.println("   c = " +c);
		
		System.out.println("==================");
		
		int d , e;
		
		d = e = 10;
		
		boolean f = ++d < e++ || d++ >= ++e;
				  //11   10      11     12
				  // 후조건을 실행했기 때문에 12,12가 나옴
		System.out.println(d+ "," +e);
		System.out.println("f =" + f);
	}
}

11,11
   c = false
==================
12,12
f =false

package kr.s02.operator;

public class OperatorMain09 {
	public static void main(String[] args) {
		System.out.println("===조건(삼항)연산자===");
		
		int x =10;
		int y =-10;
		
		//삼항연산자	
				 //조건    참값    거짓값
		int absX = x >= 0 ? x : -x;
		int absY = y >= 0 ? y : -y;
		//절대값을 만드는 공식
		System.out.println("x = 10일 때, x의 절대값은 " +absX);
		System.out.println("y = -10일 때, y의 절대값은 " +absY);
	}
}

===조건(삼항)연산자===
x = 10일 때, x의 절대값은 10
y = -10일 때, y의 절대값은 10

package kr.s02.operator;

public class OperatorMain10 {
	public static void main(String[] args) {
		
		System.out.println("===조건(삼항)연산자===");
		
		int a = 5, b= 10;
		int max; //쵀대값을 저장할 변수 선언
		int min; //최소값을 저장할 변수 선언
		
		//최대값 구하기
			//조건     참값 거짓값
		max = a > b ? a : b; 
		System.out.println("max = "+ max);
		
		//최소값 구하기
		min = a < b ? a : b;
		System.out.println("min = "+ min);
	
	}
}

===조건(삼항)연산자===
max = 10
min = 5

package kr.s02.operator;

public class OperatorMain11 {
	public static void main(String[] args) {
		char ch = 'M';
		String str; //대문자인지 판단한 결과를 저장할 문자열 변수 선언
		
		//str = ch >=65 && ch<=90 ? "대문자임":"대문자가 아님";
				 //A         Z
		str = ch >='A' && ch<='Z' ? "대문자임":"대문자가 아님";
	
		System.out.println(ch + "=>" + str);
		
	}
}

M=>대문자임
  package kr.s02.operator;

public class OperatorMain12 {
	public static void main(String[] args) {
		
		
		System.out.println("===대입연산자===");
		int a= 5; //=도 대입연산자
		int b= 7;
		
		a+=b; //a = a+b
		System.out.println("a+=b :" +a);
		
		a-=b; //a=a-b
		System.out.println("a-=b :" +a);
		
		a*=b; //a=a*b
		System.out.println("a*=b :" + a);
		
		a/=b; //a=a*b
		System.out.println("a/=b :" + a);
		
		a%=b; //a= a%b
		System.out.println("a%=b :" + a);
	}
}
 
===대입연산자===
a+=b :12
a-=b :5
a*=b :35
a/=b :5
a%=b :5

package kr.s02.operator;

public class OperatorMain13 {
	public static void main(String[] args) {
		/*
		 * 실습
		 *키보드에서 입력한 정수값에 마지막 자리수를 제외한 값과 마지막 자리수를 표시하시오.
		 *
		 *[입력예시]
		 *정수값:123
		 *[출력예시]
		 *마지막 자릿수를 제외한 값:12
		 *마지막 자릿수:3
		 */		
		java.util.Scanner input = 
				new java.util.Scanner(System.in);
		System.out.print("정수값:");
		int num = input.nextInt();
		int b = num/10;
		int c = num%10;
		
		System.out.println("마지막 자릿수를 제외한 값:"+b);
		System.out.println("마지막 자릿수:" +c);
		input.close();
		
		
	}
}

정수값:123
마지막 자릿수를 제외한 값:12
마지막 자릿수:3

package kr.s02.operator;

public class OperatorMain14 {
	public static void main(String[] args) {
		/*
		 * [실습]
		 * A전자대리점에서는 그날 물건 판매액의 15%를 할인해주기로 했습니다.
		 * 판매한 상품명과 상품의 단가와 수량을 입력해서 지불 금액을 출력하는
		 * 프로그램을 작성하시오.(단, 출력 시에는 소수점 이하는 절삭)
		 * 
		 * [입출력 예시]
		 * 상품명 입력: 냉장고
		 * 단가 입력:500000
		 * 판매 수량 입력:3
		 * 
		 * 냉장고 3대의 가격은 1,275,000원
		 */
		java.util.Scanner input =
				new java.util.Scanner(System.in);
		
		System.out.print("상품명 입력:");
		String item = input.nextLine();
		
		System.out.print("단가 입력:");
		int price = input.nextInt();
		         
		System.out.print("판매 수량 입력:");
		int count = input.nextInt();
		
		//int sum = (int) (price*0.85*count);
		int sum = price*count*85/100; // 이런 방법을 쓰면 형변환을 안써도도됨.
		System.out.printf("%s %d대의 가격은%,d원",item,count,sum);
		input.close();	
		}
}

상품명 입력:냉장고
단가 입력:500000
판매 수량 입력:3
냉장고 3대의 가격은1,275,000원
package kr.s02.operator;

public class OperatorMain15 {
	public static void main(String[] args) {
		/*
		 * [실습]
		 * 3개의 정수를 입력받아서 최대값, 최소값을 출력하는 프로그램을 작성하시오.
		 * 
		 * [입력예시]
		 * 첫번째 정수:10
		 * 두번째 정수:5
		 * 세번째 정수:7
		 * 
		 * [출력예시]
		 * 최대값:10
		 * 최소값:5
		 */
		java.util.Scanner input =
				new java.util.Scanner(System.in);
		
		System.out.print("첫번째 정수:");
		int num1 = input.nextInt();
		System.out.print("두번째 정수:");
		int num2 = input.nextInt();
		System.out.print("세번째 정수:");
		int num3 = input.nextInt();
		
		int max; //최대값을 저장할 변수 선언
		int min; //최소값을 저장할 변수 선언
		
		max = num1 > num2 ? num1:num2; 
		min = num1 < num2 ? num1:num2;
		max = max > num3 ? max:num3;
		min = min < num3 ? min:num2;
		System.out.println("최대값:"+ max);
		
		System.out.println("최소값:"+min);
		input.close();
	}
}

첫번째 정수:10
두번째 정수:5
세번째 정수:7
최대값:10
최소값:5