< 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; } } }
'STUDY > languages' 카테고리의 다른 글
[자바] 배열 개념, 문제 정리 (0) | 2021.11.17 |
---|---|
[자바] 반복문 개념정리, 문제 모음 (0) | 2021.11.17 |
[자바] 치매방지 기초모음 (0) | 2021.11.17 |
[Python] 리스트 예제, 정리 (0) | 2021.11.08 |
파이썬 : 데이터프레임 정리 (0) | 2021.09.24 |