basic/java 실습

day03 연습문제 - 연산자(증감,대입,비교,논리,삼항), 사칙연산, Scanner 입출력

못지(Motji) 2021. 4. 23. 19:03

1. 증감연산자

package day03;

public class Test15 {

	public static void main(String[] args) {
		
		// 증감연산자 : ++ -- : 단독으로 쓸때는 상관없음
		// 전위형 : ++10  ++a : 나먼저 연산
		// 후위형 : 10++ a++ : 가장 나중에,다른거 먼저
		
		int aa = 10;
		System.out.println(aa); // Console 출력 : 10
		++aa;
		System.out.println(aa); // Console 출력 : 11
		aa++;
		System.out.println(aa); // Console 출력 : 12
		--aa;
		System.out.println(aa); // Console 출력 : 11
		aa--;
		System.out.println(aa); // Console 출력 : 10
		
		int bb = 10;
		System.out.println(++bb); // Console 출력 : 11 [1증가하고 b출력]
		System.out.println(bb++); // Console 출력 : 11 [b를 출력하고 1증가]
		System.out.println(bb); // Console 출력 : 12
				
		int i = 5, j = 5;
		System.out.println(i++); // Console 출력 : 5 // i:6 [출력후 1증가]
		System.out.println(++j); // Console 출력 : 6 // j:6 [1증가후 출력]
		System.out.println("i=" + i + ", j=" + j); // Console 출력 : i=6, j=6
		
		int k = 10;
		System.out.println(k++); // Console 출력 : 10 // k:11
		System.out.println(++k); // Console 출력 : 12 // k:12
		++k; // k:13
		System.out.println(++k); // Console 출력 : 14 // k:14
		System.out.println(k++); // Console 출력 : 14 // k:15
		System.out.println(k); // Console 출력 : 15
		
		int a = 10, b = 10, r = ++a + ++b;
		System.out.println(r); // Console 출력 : 22 // r:22 a:11 b:11
		r = ++a + b++; // r:23 a:12 b:12[+연산자 계산후 1증가]
		System.out.println(r); // Console 출력 : 23
		r = ++a + a; // r:26 a:13 b:12
		System.out.println(r); // Console 출력 : 26
		r = ++a + a++; // r:28 a:15 b:12
		System.out.println(r); // Console 출력 : 28
		r = ++a + ++a; // r:33 a:17 b:12
		System.out.println(r); // Console 출력 : 33
		System.out.println(a); // Console 출력 : 17
	}
}

2. 사칙연산

package day03;

public class Test16 {

	public static void main(String[] args) {
		
		// 사칙연산 : + - * / % [나머지값]
		int a = 10 % 3;
		System.out.println(a); // Console 출력 : 1
		
		a = 100000 * 100000; // Console 출력 : 1410065408 [값깨짐] // int * int 100억 처리할 수 없음
		System.out.println(a); // Console 출력 : 1
		long l = 100000L * 100000; // long * int > long * long = long
		System.out.println(l); // Console 출력 : 10000000000
	}
}

 

 

3. *문제* 입력받고 결과값 출력하기 (사칙연산 이용)

package day03;

import java.util.Scanner;

public class Test17 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		// 문제1. 숫자 2개를 입력받고 (입력문), 사칙연산 결과를 출력해보세요.
		// 		단, 0을 제외한 숫자 입력받기.
		/* 문제1 정답
		// 숫자 입력하라고 메세지 띄어주기
		System.out.println("숫자1을 입력하세요, 단 0은 제외");
		// 입력받고, 받은거 변수에 저장 > 변수 필요
		int num1 = Integer.parseInt(sc.nextLine()); //문자열 이력받아 정수로 형변환
		// 위에꺼 반복
		System.out.println("숫자2를 입력하세요, 단 0은 제외");
		int num2 = Integer.parseInt(sc.nextLine()); //문자열 이력받아 정수로 형변환
		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));
		System.out.println("두 숫자의 나머지 값 : " + num1 + " % " + num2 + " = " + (num1 % num2));
		*/
		
		
		//문제2. 초단위로 정수를 입력받고, "?분, ?초" 형태로 출력해보세요. ex)120초 2분 0초
		/* 문제2 정답
		//메세지 출력
		System.out.println("초단위 정수 입력 : ");
		// 입력받아 저장
		int input = Integer.parseInt(sc.nextLine());
		// ?분 ?초 형태로 계산해서 출력
		int min = input / 60;
		int sec = input % 60;
		System.out.println(min + "분 " + sec + "초");
		*/
		
		//문제3. 초단위로 정수를 입력받고, "?시간 ?분 ?초" 형태로 출력
		/* 문제3 정답
		System.out.println("초단위 정수 입력 : ");
		int input = Integer.parseInt(sc.nextLine());
		// 계산 : 1분 == 60초 1시간 == 60분 == 3600초
		int hour = input / 3600;
		int min = (input % 3600) / 60;
		int sec = input % 60;
		System.out.println(hour + "시간 " + min + "분 " + sec + " 초");
		*/
		
		
		/*
		문제4. 최소 화폐매수 구하기
				: 금액을 입력하면, 최소한의 화폐 매수를 출력하세요.
				콘솔실행예)
				금액입력 >> 67800 (사용자가 입력하는 부분)
				5만원 1장
				1만원 1장
				5천원 1장
				1천원 2장
				5백원 1개
				1백원 3개
		*/ 문제4 정답
		System.out.println("금액 입력 >>");
		int money = Integer.parseInt(sc.nextLine());
		System.out.println("5만원 : " + (money / 50000) + "장");
		System.out.println("1만원 : " + ((money % 50000) / 10000) + "장");
		System.out.println("5천원 : " + ((money % 10000) / 5000) + "장");
		System.out.println("1천원 : " + ((money % 5000) / 1000) + "장");
		System.out.println("5백원 : " + ((money % 1000) / 500) + "개");
		System.out.println("1백원 : " + ((money % 500) / 100) + "개");
		System.out.println("50원 : "+ ((money % 100) / 50) + "개");
		System.out.println("10원 : "+ ((money % 50) / 10) + "개");
		
		
		sc.close();

	}

}

4. 비교연산자, 논리연산자, 삼항연산자

package day03;

public class Test18 {

	public static void main(String[] args) {
		
		// 비교연산자 > >= < <= == != : true / false의 결과가 나옴
		int a = 10;
		int b = 0;
		
		// 논리연산자 : 비교 연삭식을 여러개 연결할때 사용
		// && : and : 둘중에 하나라도 거짓이면 거짓, 모두 참이여야 참
		// || : or : 둘중에 하나라도 참이면 참, 모두 거짓이여야 거짓
		boolean res = a < b || b > 0;
		System.out.println(res); // Console 출력 : false
		
		// ! : not : 부정문 : 결과를 반대로 바꿔줌 true > false, false > true
		int c = 10;
		int d = 30;
		boolean ress = c > d;
		System.out.println("res : " + !ress); // Console 출력 : "res : true"
		
		res = c > d && d>= 30;
		System.out.println(!res); // Console 출력 : true // 저장된건 아니고 출력만 되는것임 res 그대로 F
		res = !res; // 이렇게 따로 저장해야함
		System.out.println(res); // Console 출력 : false
		
		// 삼항연산자 : 조건식(비교식) ? 참일때 결과값 : 거짓일때 결과값;
		int e = 10;
		int f = 5;
		String result = e < f ? "크다" : "작다";
		System.out.println(result); // Console 출력 : 작다
		
		int result2 = e < f ? 1 : 0;
		System.out.println(result2); // Console 출력 : 0
		
		char result3 = e > f ? 'o' : 'x';
		System.out.println(result3); // Console 출력 : o
		
		int result4 = e > f ? e : f; // 삼항연산자로 큰수 찾기
		System.out.println(result4); // Console 출력 : 10
		
		
	}

}

 

5. 대입연산자, 복합대입연산자

package day03;

public class Test19 {

	public static void main(String[] args) {
		
		// 대입연산자 : = : 대입을 해야 변수안의 값이 변경됨
		
		int a = 10;
		System.out.println(a + 10); // Console 출력 : 20
		System.out.println(a); // Console 출력 : 10
		
		System.out.println(a = a + 10); // Console 출력 : 20
		System.out.println(a); // Console 출력 : 20
		
		// 복합대입 연산자 : 산술 + 대입
		// += -= *= /= %=
		int b = 10;
		System.out.println(b); // Console 출력 : 10
		b += 10; // b = b + 10;
		System.out.println(b); // Console 출력 : 20
		
		int c = 5;
		c += 1; // == c++
		System.out.println(c); // Console 출력 : 6

	}
}