if문
if문은 조건식의 결과에 따라 블록 실행 여부가 결정 ( true, false ), ( boolean타입 )
true면 블록 실행, false면 실행 안함
int score = 93;
if(score>=90) {
System.out.println("점수가 90보다 큽니다.");
System.out.println("A등급");
}
if (score<90) {
System.out.println("점수가 90보다 작습니다.");
System.out.println("B등급");
}
if - else문
if문의 조건식이 true이면 if문의 블록이 실행, 조건식이 false이면 else 블록이 실행
조건식의 결과에 따라 이 2개의 블록 중 어느 한 블록의 내용만 실행하고 전체 if문을 벗어남
int score = 90;
if (score >= 93 && score <= 100) {
System.out.println("A등급");
}else {
System.out.println("B등급");
}
if - else else if 문
조건문이 여러 개인 if문, 처음 if문의 조건식이 false일 경우 다른 조건식의 결과에 따라 실행 블록 선택
else if문의 수는 제한이 없음, 여러 개의 조건식 중 true가 되는 블록만 실행하고 전체 if문을 벗어남
else if 블록의 마지막에는 else 블록을 추가할 수 있는데, 모든 조건식이 false일 경우 else 블록 실행
int score = 75;
if(score>=90) {
System.out.println("점수가 100~90 입니다.");
System.out.println("A등급");
} else if(score>=80) {
System.out.println("점수가 80~89 입니다.");
System.out.println("B등급");
} else if(score>=70) {
System.out.println("점수가 70~79 입니다.");
System.out.println("C등급");
} else {
System.out.println("점수가 70 입니다.");
System.out.println("D등급");
}
switch문
switch문은 if문과 마찬가지로 조건 제어문 이지만 switch문은 if문처럼 조건식이 true일 경우에
블록 내부의 실행문을 실행하는 것이 아니라, 변수가 어떤 값을 갖느냐에 따라 실행문이 선택
if문은 조건식 결과가 true, false 두 가지밖에 없기 때문에 경우에 수가 많아질수록 else-if문을
반복적으로 추가해야 하므로 코드가 복잡해지지만 switch문은 변수의 값에 따라서 실행문이
결정되기 때문에 같은 기능의 if문보다 코드가 간결해짐
int dnum = (int) (Math.random() * 6) + 1;
switch (dnum) {
case 1:
System.out.println("1번이 나옴");
break;
case 2:
System.out.println("2번이 나옴");
break;
case 3:
System.out.println("3번이 나옴");
break;
case 4:
System.out.println("4번이 나옴");
break;
case 5:
System.out.println("5번이 나옴");
break;
default:
System.out.println("6번이나옴");
break;
}
Scanner scanner = new Scanner(System.in);
String inputData;
int score;
System.out.print("학점>");
inputData = scanner.nextLine();
score = Integer.parseInt(inputData);
int num = score / 10;
switch (num) {
case 10:
case 9:
System.out.println("a");
break;
case 8:
System.out.println("b");
break;
case 7:
System.out.println("c");
break;
default:
break;
}
반복문 for문
for문은 주어진 횟수만큼 실행문을 반복 실행할 때 적합한 반복 제어문
//for (int i = 1; i <= 100; i++) {
//System.out.println(i);
//} // 1부터 100까지 구하는 for문
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum + i;
}
System.out.println(sum) // 1부터 100까지의 합
package sec02.exam03;
public class ForSumFrom1To100Example1 {
public static void main(String[] args) {
int sum = 0;
int i = 0;
for(i=1; i<=100; i++) {
sum += i;
}
System.out.println("1~" + (i-1) + " 합 : " + sum);
// (i-1) -> 루프 카운터 변수 ( float 사용 금지 )
}
}
중첩 for문
바깥쪽 for문이 한 번 실행할 때마다 중첩된 for문은 지정된 횟수만큼 반복해서 돌다가 다시 바깥쪽 for문으로
돌아감 ( 구구단, 별찍기 )
for ( int i = 1; i <= 4; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
//결과
//*
//**
//***
//****
for ( int i = 1; i <= 4; i++) {
// 내부 for문 앞에 공백 i 갯수 빼면서 역순 3, 2, 1
for (int y = 1; y <= 4 -i; y++ ) {
System.out.print(" ");
}
// 내부 for문 i에 개수 만큼 " * " 출력
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
// 1줄 만들때 마다 줄 바꿈
System.out.println();
}
//결과
// *
// **
// ***
//****
실습
10 자리 이하 버리는 코드
int value = 356;
System.out.println(value / 100 * 100);
사다리꼴의 넓이 구하는 코드
int lengthTop = 5;
int lengthBottom = 10;
int height = 7;
double area = ((double)(lengthTop * height) / 2)+((lengthBottom * height) / 2);
System.out.println(area); // 52.5
scanner 사용 실수(double) 0, 0.0 무한대
Scanner scanner = new Scanner(System.in);
double one;
double two;
double tot;
System.out.print("첫번째 수:");
one = (scanner.nextDouble());
System.out.print("두번째 수:");
two = (scanner.nextDouble());
tot = one / two;
System.out.println("결과:" + tot);
반지름 double 특정 구간 변환
int var1 = 10;
int var2 = 3;
int var3 = 14;
double var4 = var1 * var1 * Double.parseDouble(var2 + "." + var3);
System.out.println("원의 넓이 :" + var4);
로그인, 패스워드 지정값 scanner
Scanner scanner = new Scanner(System.in);
System.out.println("아이디:");
String name = scanner.nextLine();
System.out.println("패스워드:");
String pass = scanner.nextLine();
int password = Integer.parseInt(pass);
if (name.equals("java")) {
if (password == 12345) {
System.out.println("로그인 성공");
}else {
System.out.println("로그인 실패 : 패스워드가 틀림");
}
}
else {
System.out.println("로그인 실패: 아이디가 존재하지 않음");
}
for문 이용 1부터 100까지의 정수 3의 배수의 총합
int sum = 0;
for (int i = 0; i < 100; i+=3 ) {
sum += i;
}
System.out.println(sum);
주사위 2개 사용 합이 5가 되면 stop
while(true) {
int num = (int) (Math.random() * 6) + 1;
int num2 = (int) (Math.random() * 6) + 1;
System.out.println(("눈1:" + num + "눈2:" + num2));
if ((num + num2) == 5) {
break;
}
System.out.println(num + num);
}
중첩 for문, 4x + 5y = 60의 모든 해
for (int y= 1; y <= 10; y++) {
for(int x = 1; x <= 10; x++) {
if (( 4 * x + 5 * y) == 60) {
System.out.println("x=" + x + "y=" + y);
}
}
}
while문 scanner 사용, 은행 예금, 출금, 조회, 종료
boolean run = true;
int balance = 0;
Scanner scan = new Scanner(System.in);
String inputData, inputNum;
int deposit = 0; // 잔고
while (run) {
System.out.println("--------------------------");
System.out.println("1.예금 | 2.출금 | 3.잔고 | 4.종료");
System.out.println("--------------------------");
System.out.print("선택>");
inputData = scan.nextLine().toUpperCase(); // 입력값을 대문자로 변환
if (inputData.equals("1")) {
System.out.print("예금>");
inputNum = scan.nextLine(); // 키보드 입력
int tmp = Integer.parseInt(inputNum); // 정수로 변환
deposit += tmp; // 잔고에 누적
System.out.println("예금액> " + deposit); // 잔고 출력
} else if (inputData.equals("2")) {
System.out.print("출금>");
inputNum = scan.nextLine(); // 키보드 입력
int tmp = Integer.parseInt(inputNum); // 정수로 변환
deposit -= tmp; // 잔고에서 차감
if (deposit < 0) {
System.out.println("출금액>");
deposit += tmp; // 출금한 금액을 다시 잔고에 더해줌
} else {
System.out.println("출금액> " + deposit); // 잔고 출력
}
} else if (inputData.equals("3")) {
if (deposit <= 0) {
System.out.println("잔고가 없습니다.");
} else {
System.out.println("잔고: " + deposit); // 출력
}
if (inputData.equals("4")) { // 입력값이 "Q"일 때 루프 종료
break;
}
}
while (deposit < 0) { // 잔액이 0보다 작거나 같을 때 계속 반복
System.out.println("잔액이 부족합니다.");
break; // 반복 후 종료
}
System.out.println("프로그램 종료");
}
'프로젝트 기반 자바(JAVA) 응용 SW개발자 취업과정' 카테고리의 다른 글
2023-05-24 7일차 (2) | 2023.05.24 |
---|---|
2023-05-23 6일차 (0) | 2023.05.23 |
2023-05-19 4일차 (0) | 2023.05.19 |
2023-05-18 3일차 (0) | 2023.05.18 |
2023-05-17 2일차 (0) | 2023.05.17 |