public class IfMain07 {
public static void main(String[] args) {
//현재 날짜 정보
int nowYear = 2024;
int nowMonth = 2;
int nowDate = 21;
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.print("출생연도 : ");
int birthYear = input.nextInt();
System.out.print("월 입력 : ");
int birthMonth = input.nextInt();
System.out.print("일 입력 : ");
int birthDate = input.nextInt();
int age = nowYear - birthYear ;
/*
if (birthMonth > nowMonth){
//태어난 월과 현재 월을 비교
age --; // age-=1}
else if ( nowMonth == birthMonth && nowDate < birthDate)
{//태어난 월과 현재 월이 같을 경우 일 비교
age --; //age -= 1}
*/
if ( nowMonth < birthMonth || (nowMonth == birthMonth && nowDate < birthDate) )
{age --;}
System.out.printf("만 나이는 %d입니다.", age);
input.close();
}
}

public class IfMain08 {
public static void main(String[] args) {
java.util.Scanner input = new java.util.Scanner(System.in);
int result = 0; //연산의 결과를 저장할 변수 선언 및 초기화
System.out.print("첫번째 수 : ");
int first = input.nextInt();
System.out.print("연산자 : ");
String operator = input.next(); // + , - , * , / , %
System.out.print("두번째 수 : " );
int second = input.nextInt();
if ( operator.equals("+")) {
result = first + second;
}
else if (operator.equals("-")) {
result = first - second;
}
else if (operator.equals("*")) {
result = first * second;
}
else if (operator.equals("/"))
{
if(second!=0) { // 두번째 수가 0이 아니라면~
result = first / second;
}
else {
System.out.println("0으로 나눌 수 없습니다.");
System.exit(0);
}
}
else if(operator.equals("%")){
if(second != 0) { // 두번째 수가 0이 아니라면~
result = first % second;
}
else {
System.out.println("0으로 나눌 수 없습니다.");
System.exit(0);
}
}
else {
System.out.println("잘못된 연산자입니다.");
//프로그램 종료
System.exit(0);
}
System.out.println();
System.out.printf("%d %s %d = %d" , first , operator, second, result);
input.close();
}
}

public class SwitchMain01 {
public static void main(String[] args) {
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.print("정수형 숫자 입력 : ");
int a = input.nextInt();
// switch 의 인자값은 long 지외한 정수형 ( byte, short, int ) , char, 문자열 사용 가능
// 인자값과 조건값이 일치하는지 여부를 체크한다.
switch(a) {
case 1:
System.out.println("1. 입력");
break; //수행문을 실행한 후에 switch 블럭을 빠져나감
case 2:
System.out.println("2. 입력");
break;
case 3:
System.out.println("3. 입력");
break;
default:
System.out.println("1,2,3이 아닌 숫자 입력");
}
input.close();
}
}

public class SwitchMain02 {
public static void main(String[] args) {
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.print("계절 입력 : ");
//next() : 봄 여름 -> 봄만 사용
//nextLine() : 봄 여름 -> 봄 여름 한 라인의 데이터 사용
String season = input.nextLine();
switch(season) {
case "봄":
System.out.println("꽃이 피는 계절");
break;
case "여름":
System.out.println("뜨거운 태양의 계절");
break;
case "가을":
System.out.println("산들 바람이 부는 계절");
break;
case "겨울":
System.out.println("눈이 내리는 계절");
break;
default:
System.out.println("없는 계절입니다.");
}
input.close();
}
}

public class SwitchMain03{
public static void main(String[] args) {
java.util.Scanner input = new java.util.Scanner(System.in);
int score;
char grade;
System.out.print(" 성적을 입력하세요 : ");
score = input.nextInt();
if(score < 0 || score > 100) {
System.out.println(" 성적은 0 ~ 100만 입력 가능");
System.exit(0);
}
switch(score / 10) {
case 10:
case 9:
grade = 'A'; break;
case 8:
grade = 'B'; break;
case 7:
grade = 'C'; break;
case 6:
grade = 'D'; break;
default:
grade = 'F';
}
System.out.println();
System.out.printf(" 성적 : %d%n" , score);
System.out.printf(" 등급 : %c%n" , grade);
input.close();
}
}

public class SwitchMain04 {
public static void main(String[] args) {
int result = 0;
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.print("첫번째 수 : ");
int first = input.nextInt();
System.out.print("연산자 : ");
String operator = input.next();
System.out.print("두번째 수 : ");
int second = input.nextInt();
if (operator.equals("/"))
{ if(second!=0) { // 두번째 수가 0이 아니라면~
result = first / second;}
else {
System.out.println("0으로 나눌 수 없습니다.");
System.exit(0);}
}
if (operator.equals("%"))
{ if(second!=0) { // 두번째 수가 0이 아니라면~
result = first / second;}
else {
System.out.println("0으로 나눌 수 없습니다.");
System.exit(0);}
}
switch (operator){
case "+":
result = first + second;
break;
case "-":
result = first - second;
break;
case "*":
result = first * second;
break;
case "/":
result = first / second;
break;
case "%":
result = first % second;
break;
default:
System.out.println("잘못된 연산자가 입력되었습니다.");
System.exit(0);
}
System.out.println();
System.out.printf(" %d %s %d = %d" , first, operator, second, result);
input.close();
}
}

public class ForMain01 {
public static void main(String[] args) {
//for 반복문
// 초기식 ; 조건식 ; 증감식
for (int i = 1; i <= 5 ; i++) {
System.out.println(i);
}
System.out.println("========");
// 수행문이 한 줄일 경우 {} 생략 가눙
for (int i = 1; i <= 5 ; i++)
System.out.println(i);
System.out.println("프로그램 끝");
}
}

public class ForMain02 {
public static void main(String[] args) {
//초기식; 조건식; 증감식
for (int i =5; i >= 1; i--) {
System.out.print(i + "\t");
}
System.out.println("\n=========================");
for (int i = 0; i <= 10; i+=2) {
System.out.print( i + "\t");
}
System.out.println("\n=========================");
for (int i = 0; i <= 10; i++) {
if(i % 2 == 0) {
System.out.print(i + "\t");
}
}
}
}

public class ForMain03 {
public static void main(String[] args) {
int sum = 0; //변수를 선언하고 초기화 시킨다.
for(int i = 1; i <=100; i++) {
//누적 작업
sum += i; //sum 안에다가 누적 작업을 하는 것이다. 1 ~ 100까지
}
System.out.println("1부터 100까지의 합 : " + sum);
System.out.println("--------------------------------------------");
int total = 0;
/*for (int i = 1; i<=100; i+=2) {
total += i;
}*/
for(int i = 1; i<=100; i++) {
if (i % 2 == 0) {
total += i;
}
}
System.out.println("1부터 100까지 짝수의 합 : " + total);
}
}

public class ForMain04 {
public static void main(String[] args) {
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.print("단 입력 : ");
int dan = input.nextInt();
System.out.println("----------------");
System.out.println(dan + "단");
System.out.println("----------------");
for(int i = 1; i<=9; i++) {
//곱해지는 숫자
System.out.println(dan + " * " + i + " = " + (dan * i));
}
input.close();
}
}

public class ForMain05 {
public static void main(String[] args) {
//2~9단까지 출력하기 위해 다중 for 문 사용
for(int dan = 2; dan<=9; dan++) {
//dan : 구구단의 단 2~9단
System.out.println("** " + dan + "단 **");
for(int i = 1; i<=9; i++) {
//i 는 곱해지는 수 1~9까지
System.out.println(dan + " * " + i + " = " + (dan * i));
}
}
}
}

public class WhileMain01 {
public static void main(String[] args) {
//초기값
int i = 1;
//조건식
while ( i <= 10){
//증감식
System.out.println(i++);
}
}
}
public class WhileMain02 {
public static void main(String[] args) {
//초기
int sum = 0;
int su = 1;
//조건식
while(su <= 100) {
//누적
sum += su;
//증감식
//su++;
}
System.out.println("1부터 100까지의 합 : " + sum);
}
}
public class WhileMain03 {
public static void main(String[] args) {
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.print("단을 입력하세요 : ");
int dan = input.nextInt();
System.out.println("-----------------------");
System.out.println( dan + " 단 ");
System.out.println("-----------------------");
int i =1;
//조건식
while(i<=9) {
System.out.println(dan + " * " + i + " = " + dan*i );
//증감
i++;
}
input.close();
}
}
[입력 예시]
정수 입력: 3
[출력 예시]
3
2
1
0
public class WhileMain04 {
public static void main(String[] args) {
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.print("정수 입력 : ");
int num = input.nextInt();
/* 내가 작성한 코드
if (num<=0) {
System.out.println("0보다 큰 수를 입력하세요.");
System.exit(0);
}
while(num >=0)
{ System.out.println(num--); }
*/
if(num>0) {
while(num>=0) {
System.out.println(num--);
}}
else {
System.out.println("0보다 큰 수를 입력하세요.");}
input.close();
}
}
public class WhileMain05 {
public static void main(String[] args) {
java.util.Scanner input = new java.util.Scanner(System.in);
int a, total = 0;
System.out.println("0전까지 입력받은 정수로 합 구하기");
System.out.print("누적할 정수 데이터 입력: ");
while( (a = input.nextInt()) != 0) {
//누적
total += a;
System.out.print("누적할 정수 데이터 입력 :");
}
System.out.println("total = " + total);
input.close();
}
}
public class WhileMain06 {
public static void main(String[] args) {
java.util.Scanner input = new java.util.Scanner(System.in);
int a, total = 0;
System.out.println("0 전까지 입력받은 정수로 합 구하기");
while(true) {
System.out.print("누적할 정수 데이터 입력: ");
a = input.nextInt();
if(a == 0) {
break; //반복문 빠져나가기
}
//누적
total += a;
}
System.out.println("total = " + total);
input.close();
}
}
public class WhileMain07 {
public static void main(String[] args) {
// 은행프로그램 만들기
java.util.Scanner input = new java.util.Scanner(System.in);
long balance = 0L; //잔고
while(true) {
System.out.println("-----------------------------------------------");
System.out.println(" 1. 예금 | 2. 출금 | 3. 잔고 확인 | 4. 종료 ");
System.out.println("-----------------------------------------------");
System.out.print("메뉴를 선택하세요 > ");
int num = input.nextInt();
if(num == 1) {
System.out.print("얼마를 예금하시겠습니까?>");
balance += input.nextLong();
}
else if (num == 2) {
System.out.print("얼마를 출금하시겠습니까? > ");
balance -= input.nextLong();
}
else if (num == 3) {
System.out.printf("현재 계좌의 잔고는 %,d원 입니다.%n" , balance);
}
else if (num == 4) {
System.out.println("프로그램을 종료합니다.");
break;
}
else {
System.out.println("잘못 입력하였습니다.");
}
}
input.close();
}
}
public class WhileMain08 {
public static void main(String[] args) {
java.util.Scanner input = new java.util.Scanner(System.in);
int price = 4000; // 커피 가격
int quantity; //수량
int balance; //거스름돈
int payment; //지불한 돈
int total; // 총 지불해야 할 금액
System.out.print("아메리카노 몇 잔을 구매하시나요? ");
quantity = input.nextInt();
while(true) {
System.out.print("지불한 금액이 얼마입니까? ");
payment = input.nextInt();
total = quantity * price;
balance = payment - total ;
if(payment >= total) {
System.out.println();
System.out.printf("거스름돈은 %,d원 입니다. 문이 열립니다." , balance);
break;
}
else {
System.out.println( (total - payment) + "원이 부족합니다. 다시 지불해주세요.");
}
}
input.close();
}
}