Java /day04 / 23.08.28(월) / (핀테크) Spring 및 Ai 기반 핀테크 프로젝트 구축

허니몬·2023년 8월 28일
post-thumbnail

day04


P04_control < project


ch01_If < package


IfEx01 < class

제어문

  • 위에서 아래로 순차적으로 실행되는 프로그램의 흐름을 변경할 때 사용

if 문 : if ( 조건식 ) { }

  • if 문의 조건식이 참(true)일 때
    -> if 문 안의 코드를 실행한 후에 하위 코드를 진행
  • if 문의 조건식이 거짓(false)일 때
    -> if 문을 건너띄고 하위 코드를 진행
  • if 문 사용시 들여쓰기 습관화
    조건식 뒤에는 세미콜론 작성 금지
    -> 세미콜론(;)은 끝을 의미
int money = 3000;
System.out.println("보유 금액 : " + money + "원");
System.out.println();

if(money >= 3000) {
	System.out.println("아이스크림 사먹기~");
	money -= 3000;
}
System.out.println("집으로 go~");
System.out.println("보유 금액 : " + money + "원");


IfEx02

int value = 7;
System.out.println("value : " + 7);
		
if(value%2 ==1) {
	System.out.println("홀수");
}if(value%2 ==0) {
	System.out.println("짝수");
}


IfEx03

int ia = 5;
int ib = 3;
System.out.println("ia : " + ia + " - ib : " + ib);
		
int max = 0;
// 한 줄 까지는 자동으로 인식하므로 {}(중괄호)를 쓰지 않아도 됨
if(ia > ib) max = ia;
if(ib > ia) max = ib;
System.out.println("큰 값 : " + max);


IfEx04

  • 프로그램에서 if 문이 있으면 반드시 확인 후 지나감

int data = -3;
System.out.println("data : " + data);
System.out.println();
		
if(data >=0) {
	System.out.println("plus");
}
if(data <0) {
	System.out.println("minus");
}
if(data >= 1 && data <= 10) {
	System.out.println("1~10");
}


QuizIf

#1

  • 세개의 수 중에서 큰수를 찾는 코드를 작성하세요
Scanner sc = new Scanner(System.in);
System.out.println("숫자 3개를 입력 : ");
int ia = sc.nextInt();
int ib = sc.nextInt();
int ic = sc.nextInt();
int max = 0;

// 내 코드
if (ia > ib && ia > ic) {
	max = ia;
}
if (ib > ia && ib > ic) {
	max = ib;
}
if (ic > ib && ic > ia) {
	max = ic;
}

// 강사님 코드
if(ia>ib)
	max = ia;
if(ib>ia)
	max = ib;
if(ic>max)
	max = ic;
    
System.out.println("max : " + max);

#2_1 (char일 경우 == 사용 가능)

  • 성별(m, f)를 사용해서 m 이면 "남성", f 이면 "여성"을 출력하는 코드를 작성하세요.
System.out.println("성별을 m 또는 f를 입력 : ");
char gen = sc.next().charAt(0);
String type = "";
if (gen =='m')
	type = "남성";
if (gen =='f')
	type = "여성";
System.out.println("성별 : " + type);

#2_2 ( 문자열 값 비교는 .equals("문자열") )

System.out.println("성별을 m 또는 f를 입력 : ");
String gen2 = sc.next();
String type2 = "";
if (gen2.equals("m"))
	type2 = "남성";
if (gen2.equals("f"))
	type2 = "여성";
System.out.println("성별 : " + type2);
System.out.println();

#3

  • 두수의 합이 2의 배수이면서, 3의 배수도 되는지를 확인하는 코드를 작성하세요.
System.out.println("숫자 2개 입력 :");
int id = sc.nextInt();
int ie = sc.nextInt();
int sum = id + ie;
if (sum % 2 == 0 && sum % 3 == 0) {
	System.out.println("짝수이며 3의 배수이다.");
}
if (sum % 2 != 0 || sum % 3 !=0)
	System.out.println("짝수가 아니거나 3의 배수가 아니다");

#4

  • 두점 사이의 거리를 구하는 코드를 작성하세요
  • 거리의 결과는 + 값으로만 나와야 합니다
    Ex) 첫번째 위치 : 2
    두번째 위치 : 7
    거리 : 5
    굳이 if문을 2개 쓸 필요가 없음
System.out.println("p1 : ");
int p1 = sc.nextInt();
System.out.println("p2 : ");
int p2 = sc.nextInt();
int dis = p1 - p2;
if (p1 < p2)
dis = p2 - p1;
System.out.println("거리 : " + dis);


ch02_Ifelse


IfelseEx01

if else 문

if ( 조건식 ) {
  	조건식 true 실행
} else {
  	조건식 false 실행
}

if 문의 조건식이 true일 때 실행하는 지역,
false일 때 실행되는 지역이 있다.
둘 중 한 곳은 무조건 실행 됨

else는 앞의 조건식이 false 면 작동하므로 조건식을 적지 않는다.

int var = 7;
System.out.println("var : " + var);
System.out.println();
		
if(var % 2 == 1) {
	System.out.println("홀수");
}
if(var % 2 == 0) {
	System.out.println("짝수");
}
// 속도를 따진다면 아래가 효율적임
if(var % 2 == 1) {
	System.out.println("홀수");
}else {
	System.out.println("짝수");
}


IfelseEx02

int point = 2000;
System.out.println("현재 포인트 : " + point);
		
if(point >= 2000) {
	System.out.println("아이템 구매 완료!!");
	point -= 2000;
}else {
	System.out.println("포인트가 부족합니다.");
}
System.out.println("현재 포인트 : " + point);



QuizIfelse

#1
세과목의 점수를 확인해서 합격, 불합격을 알려주는 코드를 작성하세요

  • 합격 조건 : 각 과목별 점수가 40 이상이면서, 평균도 60 이상이어야 합니다
Scanner sc = new Scanner(System.in);
System.out.println("1과목 점수 입력 : ");
int s1 = sc.nextInt();
System.out.println("2과목 점수 입력 : ");
int s2 = sc.nextInt();
System.out.println("3과목 점수 입력 : ");
int s3 = sc.nextInt();

int tot = s1 + s2 + s3;
double avg = tot / 3.0;
if (s1 >= 40 && s2 >= 40 && s3 >= 40 && avg >= 60) {
	System.out.println("합격");
} else {
	System.out.println("불합격");
}

#2
ATM 코드를 작성하세요

  • 현재 통장 잔고를 설정합니다
    인출 금액을 설정합니다
    인출 금액이 정상이면, 출금 후 잔액을 알려줍니다
  • 인출 조건 : 잔액보다 작거나 같아야 합니다
    10000원 단위만 가능합니다( 11000 X, 10001 X )
  • -(minus) 금액은 안됩니다
System.out.println("현재 통장 잔고 : ");
int nm = sc.nextInt();
System.out.println("인출 금액 입력 : ");
int om = sc.nextInt();
if (om <= nm && om % 10000 == 0 && om > 0) {
nm -= om;
	System.out.println("출금액 : " + om + "원");
	System.out.println("잔액 : " + nm+"원");

} else {
	System.out.println("인출금액 오류");
}
System.out.println("잔액 : " + nm+"원");
}


ch03_nestedif


Nestedif

중첩 if
조건식에 대한 결과에 대해서 세분화 하거나, 재분류 할 때 사용

if ( 조건식_a ) {
	조건식_a 가 참이면 실행
	if ( 조건식_b) { 
		조건식_a, 조건식_b둘다 참이면 실행
	}else{
		조건식_a참, 조건식_b 거짓이면 실행
	}
}
int data = -5;
int aData =0;
System.out.println("data : " + data);
System.out.println();

if (data >= 0) {
	System.out.println("plus");
	if (data % 2 == 1) {
		System.out.println("홀수");
	} else {
		System.out.println("짝수");
	}
} else {
	System.out.println("minus");
	aData = data * -1;
	if (aData % 2 == 1) {
		System.out.println("홀수");
	} else {
		System.out.println("짝수");
	}
}


QuizNestedif

#1
보유한 금액에 따라서 구매 가능한 아이템 목록을 보여주는 코드를 작성하세요

  • 3000 미만
    : 일반검 , 일반방패 , 물약
    5000 미만
    : 쇠검 , 쇠방패 , 에너지드링크
    5000 이상
    : 아이템 팩키지
import java.util.Scanner;
Scanner sc = new Scanner(System.in);

System.out.println("보유 금액 입력 : ");
int m = sc.nextInt();
String i1 = "일반검, 일반방패, 물약";
String i2 = "쇠검, 쇠방패, 에너지드링크";
String i3 = "아이템팩키지";

if (m >=0) {
	System.out.println(i1);
	if(m>=3000) {
		System.out.println(i2);
		if(m>=5000) {
			System.out.println(i3);
		}
	}
}

#2 물품의 크기, 무게에 따라서 사용 가능한 카트를 알려주는 코드를 작성하세요

  • 크기 무게 cart
    small 50kg 미만 cart-A
    small 50kg 이상 cart-B
    large 50kg 미만 cart-C
    large 50kg 이상 cart-D
String size = "";
double weight = 0;
String cart = "";
		
System.out.print("크기 입력 > ");
size = sc.next();
		
if(size.equals("small") || size.equals("large")) {
	System.out.print("무게 입력 > ");
	weight = sc.nextDouble();
	if(size.equals("small")) {
		if(weight < 50) {
			cart = "cart-A";
		} else {
			cart = "cart-B";
		}
	} else {
		if(weight < 50) {
			cart = "cart-C";
		} else {
			cart = "cart-D";
			}
		}
System.out.println(cart + " 사용하세요");
} else {
	System.out.println("크기 오류");
}


ch04_ifelseifEx01


IfelseifEx01

if ~ else if
여러개의 조건식 중에서 하나만을 찾아서 실행하게 된다.

- if ( 조건식_a ) {
	조건식_a 가 참이면 실행
} esle if( 조건식_b ) {
	조건식_a 거짓, 조건식_b 가 참이면 실행
}... { 
} else {
	상위에 모든 조건식이 거짓이면 실행( 필수x )
}

차이점 :
if 문은 각각 실행됨
else if문은 if~ else if 문이 하나의 묶음

int var =25;
System.out.println("var : " + var);
System.out.println();
		
System.out.println("- if 여러개 - ");
if(var > 20)
	System.out.println("20 보다 큰 수");
if(var > 10)
	System.out.println("10 보다 큰 수");
if(var > 0)
	System.out.println("0 보다 큰 수");
		
System.out.println("- if ~ else if - ");
if(var > 20)
	System.out.println("20 보다 큰 수");
else if(var > 10)
	System.out.println("10 보다 큰 수");
else if(var > 0)
	System.out.println("0 보다 큰 수");


IfelseifEx02

불필요한 조건식 지우기
상황에 맞게 if / else if를 사용
-> 코드 간결 -> 성능 우수

int data = 27;
System.out.println("data : " + data);
System.out.println();
		
if(data >= 1 && data <= 10)
	System.out.println("1 ~ 10");
if(data >= 11 && data <= 20)
	System.out.println("11 ~ 20");
if(data >= 21 && data <= 30)
	System.out.println("21 ~ 30");
		

if(data >=1 ) {
	if(data >= 1 && data <= 10)
		System.out.println("1 ~ 10");
	else if(data <= 20)
		System.out.println("11 ~ 20");
	else if(data <= 30)
		System.out.println("21 ~ 30");
}


IfelseifEx03

조건식 순서 중요성

int num = 15;
System.out.println("num : " + num);
System.out.println();

if (num % 3 == 0 && num % 5 == 0) {
	System.out.println("3 and 5의 배수");
} else if (num % 5 == 0) {
	System.out.println("5의 배수");
} else if (num % 3 == 0) {
	System.out.println("3의 배수");
} else {
	System.out.println("?");
}
if (num % 3 == 0) {
	System.out.println("3의 배수");
} else if (num % 5 == 0) {
	System.out.println("5의 배수");
} else if (num % 3 == 0 && num % 5 == 0) {
	System.out.println("3 amd 5의 배수");
} else {
	System.out.println("?");
}


QuizIfelseif

#1
차량 속도를 확인해서 벌점, 과태료를 알려주는 코드를 작성하세요

속도(km)벌점과태료(만원)
0 ~ 10000
101 ~ 12003
121 ~ 140156
141 ~ 160309
161 ~6012
import java.util.Scanner;
Scanner sc = new Scanner(System.in);

System.out.println("속도 입력");
int v = sc.nextInt();
int p = 0;
int f = 0;
if (v >= 161) {
	p = 60;
	f = 12;
} else if (v >= 141) {
	p = 30;
	f = 9;
} else if (v >= 121) {
	p = 15;
	f = 6;
} else if (v >= 101) {
	p = 0;
	f = 3;
}
System.out.println("속도 : " + v + "km , 벌점 : " + p + "점, 과태료 : " + f + "만원");

#2

  • 몸무게(kg), 키(cm) 를 사용해서 BMI(체질량지수)를 구하는 코드를 작성하세요
  • BMI = 몸무게(kg) / 키(m) * 키(m)
  • bmi 몸상태
          ~ 18.4 저체중
    18.5 ~ 22.9 정상
    23.0 ~ 24.9 과체중
    25.0 ~ 29.9 비만
    30.0 ~       고도비만

System.out.println("키 입력 : \n" + "(단위 : m)");
double h = sc.nextDouble();
double h1 = h/100;
System.out.println("몸무게 입력 : \n" + "(단위 : kg)");
double w = sc.nextDouble();
double b = w / (h1 * h1);
String a = "저체중";
if (b > 30) a = "고도비만";
else if (b > 25) a = "비만";
else if (b > 23) a = "과체중";
else if (b > 18.5) a = "정상";
		
System.out.println("--- 몸상태 ---\n" + "키\t: " + h1 + "\n" + "몸무게\t: " + w);
System.out.printf("BMI\t: %.1f", b);
System.out.println("\n몸상태\t: " + a);

profile
Fintech

0개의 댓글