< if >

if 반복문 개념 if - else if

더보기

package day0908;
/*if - else if 구조
 * if - else if 구조에서는
 * if의 조건식이 false가 나오면
 * 그 다음 else if 조건식을 체크하는 식으로 하는 구조로써
 * 최종적으로 여러 조건을 체크할 수 있게 되는 구조이다.
 * if - else 때와 ㅏㅁ찬가지로,
 * 오직 한개의 코드블락만이 실행 된다.
 * 
 * if - else if 구조
 * if(조건식1) {
 *      조건식1이 true일 떄 실행할 코드 블락
 * } else if(조건식2) {
 *      조건식2가 true일 때 식핼할 코드 블락
 * } else if ....
 * 
 * } else {
 *      위 조건식이 모두 false일때 실행할 코드 블락
 */


public class Ex07IfElseIf {
    public static void main(String[] args) {
        int num = 3;
        
        if(num>0) {
            System.out.println("자연수입니다.");
        } else if(num<0) {
            System.out.println("음의 정수입니다.");
        } else {
            System.out.println("0 입니다.");
        }
    }
}

++ 검증

더보기
package day0908;
/*검증(Validation)
* 검증이란, 입력된 값을 처리하기 전에
* 해당 값이 올바른 값인지 확인하는 과정을 검증이라고 한다.
*
* 검증은 다양한 방법으로 할 수 있는데
* 우리는 여기서 2가지 방법의 검증을 알아볼 것이다.
*/
import java.util.Scanner;
public class Ex12Validation {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("점수를 입력해주세요.");
System.out.println("> ");
int score = scanner.nextInt();
System.out.println("값 검증이 안됬을 경우");
//점수 입력이 28890점, -435점 같은 터무니 없는 값일 경우가 값 검증이 안된경우임.
if(score >= 90) {
System.out.println("A");
} else if(score >= 80) {
System.out.println("B");
} else if(score >= 70) {
System.out.println("C");
} else if(score >= 60) {
System.out.println("D");
} else {
System.out.println("F");
}
System.out.println("------------------\n");
System.out.println("검증 1번. 정확한 조건식 사용");
/* 정확한 조건식이란?
* 헤당 코드 블락이 실행되는 정확한 if조건식을 만들어서
* 그 경우에만 코드 블락이 실행되기 if - else if를 만들어 주는 것을 뜻한다.
*
* 정확한 조건식의 경우, 올바른 값의 범위가 연속적이지 않을 때
* 사용하면 좋다.
*/
if(score >= 90 && score <= 100) {
System.out.println("A");
} else if(score >= 80 && score <= 89) {
System.out.println("B");
} else if(score >= 70 && score <= 79) {
System.out.println("C");
} else if(score >= 60 && score <= 69) {
System.out.println("D");
} else if(score >= 0 && score <= 59) {
System.out.println("F");
} else {
System.out.println("잘못 입력하셨습니다.");
}
System.out.println("------------------\n");
System.out.println("검증 2번. 값이 올바른 범위에 속하는지 먼저 체크하기");
/* 만약 올바른 값이 범위의 형태라면
* 먼저 값이 올바른 범위에 속하는지 체크하고
* 만약 올바르다면 추가적으로 코드를 실행시킨다.
* 만약 올바르지 않다면 경고 메시지만 출력해준다.
*/
if(score >= 0 && score <= 180) {
//사용자가 입력한 점수가 올바른 점수이므로(=0이상 100이하의 정수)
//if-else if 구조를 사용하여 A, B, C, D, F를 출력해준다.
//이때에는 잘못된 점수(100초과, 0미만인 경우)는
//이 if 코드 블락 안에 접근 할 수 없으므로
//조건식을 간단하게 써도 된다.
if(score >= 90) {
System.out.println("A");
} else if(score >= 80) {
System.out.println("B");
} else if(score >= 70) {
System.out.println("C");
} else if(score >= 60) {
System.out.println("D");
} else {
System.out.println("F");
}
} else {
//사용자가 입력한 점수가 올바르지 않은 경우이므로
//경고메시지만 출력
System.out.println("점수는 0미만이거나 100을 초과할 수 없습니다.");
}
scanner.close();
}
}

 

1. 문제

/*퀴즈 + else 까지 생각해서 작성
 * 1. int 변수 num을 만들고 4로 초기화해서
 * 만약 num이 5보다 작으면
 * "5보다 작습니다"가 출력되게 코드를 작성하시오
 * 2. 변수 num에 8로 초기화하고
 * 만약 num이 짝수이면
 * "짝수입니다."가 출력되게 코드를 작성하시오
 * 3. 사용자로부터 숫자를 입력받아서
 * 해당 숫자가 6의 배수이면,
 * "6의 배수 입니다"가 출력되게 코드를 작성하시오
 * 4. 사용자로부터 나이를 입력받아서
 * 미성년자일시, "미성년자입니다"가 출력되게 코드를 작성하시오
 * 5. 사용자로부터 숫자를 입력받아서
 * 50이상 60미만일 경우
 * "50번대 숫자입니다"가 출력되게 코드를 작성하시오
 * 6. 사용자로부터 아이디와 비밀번호를 입력받아서
 * 아이디가 "admin"이고 비밀번호가 "111"이면
 * "로그인 성공"이 출력되게 코드를 작성하시오.
 * 단, 아이디는 대소문자 구분을 하지 않습니다.
 * 
 * 제한시간 20분
 */

1. 답

더보기
package day0908;
import java.util.Scanner;
public class Ex05IfElse2 {
public static void main(String[] args) {
//내가 한거 = 선생님이 한거
Scanner scanner = new Scanner(System.in);
System.out.println("--------1번--------");
int num = 4;
if(num<5) {
System.out.println("5보다 작습니다.");
} else {
System.out.println("5보다 크거나 같습니다.");
}
System.out.println("------------------");
System.out.println("--------2번--------");
num = 8;
if(num %2 == 0) {
System.out.println("짝수입니다.");
} else {
System.out.println("홀수입니다.");
}
System.out.println("------------------");
System.out.println("--------3번--------");
System.out.println("숫자를 입력해주세요.");
System.out.print("> ");
num = scanner.nextInt();
if(num % 6 == 0) {
System.out.println("6의 배수입니다.");
} else {
System.out.println("6의 배수가 아닙니다.");
}
System.out.println("------------------");
System.out.println("--------4번--------");
System.out.println("나이를 입력해주세요.");
System.out.print("> ");
int age = scanner.nextInt();
if(age < 19) {
System.out.println("미성년자입니다.");
} else {
System.out.println("미성년자가 아닙니다.");
}
System.out.println("------------------");
System.out.println("--------5번--------");
System.out.println("숫자를 입력해주세요.");
System.out.print("> ");
num = scanner.nextInt();
if(age >= 50 && num < 60) {
System.out.println("50번대 숫자입니다.");
} else {
System.out.println("50번대 숫자가 아닙니다.");
}
System.out.println("------------------");
System.out.println("--------6번--------");
scanner.nextLine();
System.out.println("아이디를 입력해주세요.");
System.out.print("> ");
String username = scanner.nextLine();
System.out.println("비밀번호를 입력해주세요.");
System.out.print("> ");
String password = scanner.nextLine();
if(username.equalsIgnoreCase("admin") && password.equalsIgnoreCase("111")) {
System.out.println("로그인 성공");
} else {
System.out.println("로그인 실패");
}
System.out.println("------------------");
scanner.close();
}
}

 

2. 문제

/*퀴즈
 * 이름 국어 영어 수학 순으로 입력받아서
 * 만약 총점이 210점 미만이거나
 * 한 과목이라도 60점 미만일 때에는
 * "###학생은 불합격 입니다."라고 출력되고
 * 그외는 "###학생은 합격입니다."라고 출력되는
 * 프로그램을 작성하시오
 * 
 * 제한시간 10분
 */

2. 답

더보기
package day0908;
import java.util.Scanner;
public class Ex06IfElse3 {
public static void main(String[] args) {
//내가 한거
// Scanner sc = new Scanner(System.in);
//
// final int CLASSNUMBER = 3;
//
// System.out.println("이름을 입력해주세요.");
// System.out.print("> ");
// sc.nextLine();
// String name = sc.nextLine();
//
// System.out.println("국어 영어 수학 점수를 각각 입력해주세요.");
// System.out.println("국어> ");
// int kor = sc.nextInt();
// System.out.println("영어> ");
// int eng = sc.nextInt();
// System.out.println("수학> ");
// int math = sc.nextInt();
//
// int total = kor+eng+math;
// double avg = (double)total / CLASSNUMBER;
//
// if(total<210 || kor<60 || eng<60 || math<60 ) {
// System.out.println("[%s]학생은 불합격입니다."+ name);
// } else {
// System.out.println("[%s]학생은 합격입니다."+ name);
// }
//
// sc.close();
//
//쌤이 한거
Scanner scanner = new Scanner(System.in);
//총점 기준
final int SUM_STANDARD = 210;
//과목별 기준
final int SUBJECT_STANDARD = 60;
System.out.println("이름을 입력해주세요.");
System.out.print("> ");
scanner.nextLine();
String name = scanner.nextLine();
System.out.println("국어점수를 입력해주세요 ");
System.out.print("> ");
int korean = scanner.nextInt();
System.out.println("영어점수를 입력해주세요 ");
System.out.print("> ");
int english = scanner.nextInt();
System.out.println("수학점수를 입력해주세요 ");
System.out.print("> ");
int math = scanner.nextInt();
//총점계산
int sum = korean + english + math;
if( sum < SUM_STANDARD || korean<SUBJECT_STANDARD || english<SUBJECT_STANDARD || math<SUBJECT_STANDARD) {
System.out.println(name+"학생은 탈락입니다.");
} else {
System.out.println(name+"학생은 합격입니다.");
}
scanner.close();
}
}

 

3. 문제

/* 사용자로부터 점수를 입력받아서
 * 90~: A
 * 80~: B
 * 70~: C
 * 60~: D
 * 그외: F
 * 가 출력되는 프로그램을 작성하시오
 * 
 * 제한시간 10분
 */

3. 답

더보기
package day0908;
/* 사용자로부터 점수를 입력받아서
* 90~: A
* 80~: B
* 70~: C
* 60~: D
* 그외: F
* 가 출력되는 프로그램을 작성하시오
*
* 제한시간 10분
*/
import java.util.Scanner;
public class Ex08LetterGrade {
public static void main(String[] args) {
// //내가 한거
// Scanner sc = new Scanner(System.in);
//
// System.out.println("점수를 입력하세요");
// System.out.print("> ");
// int score = sc.nextInt();
//
// if(score>=90) {
// System.out.println("A");
// } else if (score>=80) {
// System.out.println("B");
// } else if (score>=70) {
// System.out.println("C");
// } else if (score>=60) {
// System.out.println("D");
// } else
// System.out.println("F");
//
// sc.close();
Scanner scanner = new Scanner(System.in);
//점수입력
System.out.println("점수를 입력해주세요.");
System.out.println("> ");
int score = scanner.nextInt();
if(score >= 90) {
System.out.println("A");
} else if(score >= 80) {
System.out.println("B");
} else if(score >= 70) {
System.out.println("C");
} else if(score >= 60) {
System.out.println("D");
} else {
System.out.println("F");
}
scanner.close();
}
}

 

4. 문제

/*퀴즈
 * 사용자로부터 정보를 입력 받아서
 * 다음과 같은 형식으로 비만도를 출력하는 프로그램을 작성하시오
 * 
 * 결과)
 * 이름: [###] 키: #.##M 몸무게: ##.##kg
 * BMI: ##.### 비만도: ###
 * 
 * 단, BMI 공식은
 * 몸무게 / 키(미터단위) / 키(미터단위) 입니다.
 * 
 * 비만도는
 * ~18.5: 저체중
 * ~23: 정상체중
 * ~25: 과체중
 * 그외: 비만
 * 으로 분류됩니다.
 * 
 * 제한시간 20분
 */

4. 답

더보기
package day0908;
import java.util.Scanner;
public class Ex09BmiChecker {
public static void main(String[] args) {
// //내가 한거.. 미션실패,, -,-;;
// Scanner sc = new Scanner(System.in);
// System.out.println("이름을 입력해주세요");
// System.out.print("> ");
// sc.nextLine();
// String name = sc.nextLine();
//
// System.out.println("키 미터단위로 입력해주세요");
// System.out.print("> ");
// double height = sc.nextDouble();
//
// System.out.println("몸무게를 입력해주세요");
// System.out.print("> ");
// double weight = sc.nextDouble();
//
// double BMI_height = height/100;
// double BMI = weight / BMI_height / BMI_height;
//
// if (BMI<=18.5) {
// System.out.println("저체중");
// } else if(BMI>23 && BMI<18.5) {
// System.out.println("정상체중");
// } else if(BMI>23 && BMI<25) {
// System.out.println("정상체중");
// } else {
// System.out.println("비만");
// }
//
// System.out.println("이름: "+name+ "키: "+BMI_height+"M 몸무게: "+weight+"kg");
// System.out.println("BMI: [%0d.00]");
//
// sc.close();
//쌤이 한거
//비만도를 상수로 정하고
//이름->키->몸무게 입력받고, BMI값 계산, 비만도 값 결정, 결과 출력 순으로 진행
Scanner scanner = new Scanner(System.in);
//상수
final double BMI_STANDARD1 = 18.5;
final double BMI_STANDARD2 = 23;
final double BMI_STANDARD3 = 25;
System.out.println("이름을 입력해주세요");
System.out.print("> ");
String name = scanner.nextLine();
System.out.println("키를 미터 단위로 입력해주세요");
System.out.print("> ");
double height = scanner.nextDouble();
System.out.println("몸무게를 킬로그램 단위로 입력해주세요");
System.out.print("> ");
double weight = scanner.nextDouble();
double bmi = weight / height / height;
//비만도값 결정
// if(bmi < BMI_STANDARD1) {
// String result= "저체중";
// } else if(bmi < BMI_STANDARD2) {
// String result = "정상체중";
// } else if(bmi < BMI_STANDARD3) {
// String result = "과체중";
// } else {
// String result = "비만";
// }
// 위는 잘못된거 result의 코드블락이 한정적이기 때문에
// 비만도 값을 저장할 Strng 클래스 변수 '선언' 해줘야 됨
String result;
if(bmi < BMI_STANDARD1) {
result= "저체중";
} else if(bmi < BMI_STANDARD2) {
result = "정상체중";
} else if(bmi < BMI_STANDARD3) {
result = "과체중";
} else {
result = "비만";
}
//결과 출력
System.out.printf("이름: [%s] 키: %.2f M 몸무게: %.2f kg\n", name, height, weight);
System.out.printf("BMI: %.3f 비만도: %s\n", bmi, result);
scanner.close();
}
}

 

5. 문제

/* 사용자로부터 성별, 나이, 신체등급을 입력받아
 * 현역, 공익, 면제를 출력하는 프로그램을 작성하시오
 * 
 * 제한 시간 20분
 * 
 * 단. 사용자가 여성일 경우, 추가적인 입력 없이
 * "여성에게는 국방의 의무가 부여되지 않습니다"만 출력되게 코드를 작성하시오.
 * 
 * 단, 사용자가 남성이지만 미성년자일 경우
 * "아직 미성년자에게는 신체등급이 부여되지 않습니다."만 출력되게 코드를 작성하시오.
 * 
 * 성별의 경우, 입력 시에 int로 입력을 받아 1이면 남자 2면 여자로 판정합니다.
 * 현역: 1~3
 * 공익: 4
 * 면제: 그외  
 */

5. 답

더보기
package day0908;
import java.util.Scanner;
public class Ex11Army {
public static void main(String[] args) {
//내가 한거
// Scanner sc = new Scanner(System.in);
//
// System.out.println("성별을 입력해주세요(남자는 1, 여자는 2)");
// System.out.print("> ");
// int sex = sc.nextInt();
//
// if (sex==1) {
//
// System.out.println("나이를 입력해주세요");
// System.out.print("> ");
// int age = sc.nextInt();
//
// System.out.println("신체등급을 입력해주세요");
// System.out.print("> ");
// int grade = sc.nextInt();
//
// if(age<19) {
// System.out.println("아직 미성년자에게는 신체등급이 부여되지 않습니다.");
// } else if(grade>0 && grade<4){
// System.out.println("현역");
// } else if(grade==4) {
// System.out.println("공익");
// } else {
// System.out.println("면제");
// }
//
// } else
// System.out.println("여성에게는 국방의 의무가 부여되지 않습니다.");
//
// sc.close();
//
//쌤이 한거
Scanner scanner = new Scanner(System.in);
System.out.println("성별을 입력해주세요.(1: 남자 2: 여자)");
System.out.print("> ");
int gender = scanner.nextInt();
if(gender == 1) {
//남자이므로 나이를 입력 받는다.
System.out.println("나이를 입력해주세요.");
System.out.print("> ");
int age = scanner.nextInt();
//나이를 확인한다.
if(age >= 19) {
//성인 이므로 신체 등급을 입력받는다.
System.out.println("신체 등급을 입력해주세요.");
System.out.println("> ");
int category = scanner.nextInt();
if(category <= 3) {
System.out.println("현역입니다.");
} else if(category == 4) {
System.out.println("공익입니다.");
} else {
System.out.println("면제입니다.");
}
} else {
//미성년자 이므로 메시지만 출력
System.out.println("미성년자에게는 신체등급이 부여되지 않습니다.");
}
} else {
//여자이므로 메시지만 출력
System.out.println("여성에게는 국방의 의무가 부여되지 않습니다.");
}
scanner.close();
}
}

 

6. 문제

/*퀴즈
 * 제한시간 15분
 * 사용자로부터 키와 몸무게를 입력받아
 * BMI 수치를 계산하고 비만도를 출력하는 프로그램을 작성하시오.
 * 
 * 기네스북에 따르면 세계에서 가장 키가 컸던 사람의 키는 2.72m였습니다.
 * 기네스북에 따르면 세계에서 가장 몸무게가 무거웠던 사람의 몸무게는 650킬로그램이였습니다.
 * 
 * 만약 사용자가 잘못된 값을 입력할 경우, 추가적인 입력 없이
 * "잘못된 입력을 감지하여 프로그램을 종료합니다."라는
 * 메시지가 출력되면서 프로그램이 종료되게 코드를 작성하시오.
 */

6. 답

더보기
package day0908;
import java.util.Scanner;
public class Ex13BmiChecker2 {
public static void main(String[] args) {
// //내가 한거
// Scanner scanner = new Scanner(System.in);
//
// //상수
// final double BMI_STANDARD1 = 18.5;
// final double BMI_STANDARD2 = 23;
// final double BMI_STANDARD3 = 25;
//
// System.out.println("이름을 입력해주세요");
// System.out.print("> ");
// String name = scanner.nextLine();
//
// System.out.println("키를 미터 단위로 입력해주세요");
// System.out.print("> ");
// double height = scanner.nextDouble();
//
// System.out.println("몸무게를 킬로그램 단위로 입력해주세요");
// System.out.print("> ");
// double weight = scanner.nextDouble();
//
// double bmi = weight / height / height;
//
// String result;
//
// if(height<2.72 && weight<650){
// if(bmi < BMI_STANDARD1) {
// result= "저체중";
// } else if(bmi < BMI_STANDARD2) {
// result = "정상체중";
// } else if(bmi < BMI_STANDARD3) {
// result = "과체중";
// } else {
// result = "비만";
// }
//
// //결과 출력
// System.out.printf("이름: [%s] 키: %.2f M 몸무게: %.2f kg\n", name, height, weight);
// System.out.printf("BMI: %.3f 비만도: %s\n", bmi, result);
//
//
// } else {
// System.out.println("잘못된 입력을 감지하여 프로그램을 종료합니다.");
// }
//
// scanner.close();
// 썜이 한거
Scanner scanner = new Scanner(System.in);
// 각 최대값
final double HEIGHT_MAX = 2.72;
final double WEIGHT_MAX = 650;
final double BMI_STANDARD1 = 18.5;
final double BMI_STANDARD2 = 23;
final double BMI_STANDARD3 = 25;
System.out.println("키를 m 단위로 입력해주세요.");
System.out.println("> ");
double height = scanner.nextDouble();
if (height > 0 && height <= HEIGHT_MAX) {
// 키가 올바른 값이므로 몸무게 입력을 받는다.
System.out.println("몸무게를 kg 단위로 입력해주세요");
System.out.println("> ");
double weight = scanner.nextDouble();
if (weight > 0 && weight <= WEIGHT_MAX) {
// 몸무게가 올바른 값이므로 이름 입력->BMI계산->비만도결정->결과출력 진행
System.out.println("이름을 입력해주세요");
System.out.print("> ");
String name = scanner.nextLine();
double bmi = weight / height / height;
String result;
if (bmi < BMI_STANDARD1) {
result = "저체중";
} else if (bmi < BMI_STANDARD2) {
result = "정상체중";
} else if (bmi < BMI_STANDARD3) {
result = "과체중";
} else {
result = "비만";
}
// 결과 출력
System.out.printf("이름: [%s] 키: %.2f M 몸무게: %.2f kg\n", name, height, weight);
System.out.printf("BMI: %.3f 비만도: %s\n", bmi, result);
} else {
// 올바르지 않은 몸무게 이므로 경고 메시지만 출력한다.
System.out.println("잘못된 입력을 감지하여 프로그램을 종료한다.");
}
} else {
// 올바르지 않은 키이므로 경고 메시지만 출력한다.
System.out.println("잘못된 입력을 감지하여 프로그램을 종료한다.");
}
scanner.close();
}
}

 

 


Switch 조건문

더보기
package day0913;
/*Switch 조건문
* switch 조건문의 경우, if 조건문과는 다르게
* 변수를 하나 선택하여
* 그 변수의 값에 대한 코드 처리를 하게 된다.
* 또한, 명확하게 값이 나뉘는 변수들에 대해서만 switch 조건문을 만들어 줄수 있기 때문에
* 정수형, 문자형 변수 혹은 연산의 결과값에 대해서만 switch 조건문을 만들 수 있다. //실수는 값이 명확하지 않기 때문에 안씀
*/
public class Ex01Switch {
public static void main(String[] args) {
int num = 2;
switch(num) {
case 1:
System.out.println("1입니다.");
break;
case 2:
System.out.println("2입니다.");
break;
case 3:
System.out.println("3입니다.");
break;
default:
System.out.println("그외입니다.");
break;
}
}
}

 

 

+ Recent posts