자바_기초특강 3일차 (총 4일)
package day03;
// 중첩 if문(Nested If)
// 하나의 if문 안에 새로운 if문이 포함되어 있는 구조이다.
// 즉 상위의 if문이 실행이 되어야 그 안에 포함되어 있는
// 하위 if문의 조건식을 실행시킬 수 있게 된다.
// if문 만이 아니라 다른 제어문들도 중첩을 시킬수도 있고
// 서로 다른 제어문도 중첩시킬수 있다.
// 사용자로부터 숫자를 입력 받아서
// 자연수일 경우, "자연수입니다" 가 출력되고
// 그리고 자릿수에 따라서 "한자리입니다.", "두자리입니다.", "세자리 이상입니다." 가
// 출력되는 프로그램
// 단, 자연수가 아닐 경우 즉 0 미만의 숫자일 경우에는 "음의 정수입니다"만 출력되는 프로그램
import java.util.Scanner;
public class Ex01NestedIf {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 사용자로부터 정수를 입력받는다.
System.out.println("정수를 입력해주세요.");
System.out.println(" >");
int number = scanner.nextInt();
if(number >= 0) {
System.out.println("자연수입니다.");
if(number <10) {
System.out.println("한자리입니다.");
} else if(number < 100) {
System.out.println("두자리입니다.");
} else {
System.out.println("세자리 이상입니다.");
}
} else {
System.out.println("음의 정수입니다.");
}
scanner.close();
}
}
package day03;
// 검증(validation)
// 검증이란 특정 데이터의 값이 올바른지 체크하는 과정이다.
// 특정 데이터의 값이 올바른지 체크할 때에는 정말 많은 방법으로
// 검증을 할수있지만
// 우리는 두가지 방법을 통한 값 검증을 알아볼 것이다.
import java.util.Scanner;
public class Ex02Validation {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("점수를 입력해주세요.");
System.out.print("> ");
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");
}
System.out.println("-----------------------\n");
// 값 검증하기 1번
// if문과 else if문의 조건식을 매우 빡빡하게 잡는다.
// 이 검증방법은 특정 결과가 나오는 조건이 연속적이지 않을 경우 주로 사용이 된다.
System.out.println("2. 조건식을 빡빡하게 사용하기");
if(score >= 90 && score <= 100) {
System.out.println("A");
} else if(score >= 80 && score < 90) {
System.out.println("B");
} else if(score >= 70 && score < 80) {
System.out.println("C");
} else if(score >= 60 && score < 70) {
System.out.println("D");
} else if(score >= 0 && score < 60) {
System.out.println("F");
} else {
System.out.println("잘못된 점수입니다.");
}
System.out.println("-----------------------\n");
// 값 검증하기 2번
// 먼저 입력된 데이터가 올바른지 아닌지를 확인하고
// 올바를때에만 코드를 진행시킨다.
// 이 방법은 올바른 데이터가 연속적인 범위가 있을 경우 사용된다.
System.out.println("3. 유효한 값인지부터 체크하기");
if(score >= 0 && score <= 100) {
//사용자가 올바른 점수를 입력했을 경우
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("범위를 벗어난 점수입니다.");
}
System.out.println("-----------------------\n");
scanner.close();
}
}
package day03;
// while 반복문
// 반복문이란 특정 조건이 true가 나오는 동안,
// 연결된 코드 블록을 반복시키는 특수한 코드이다.
// 반복문에는 while 반복문과 for 반복문 2가지가 있는데,
// for 반복문은 반복 횟수에 중점을 둔 반복문이지만
// while 반복문은 횟수가 아니라 조건식 자체가 true가 나오는 동안,
// 즉 무언가 코드를 계속 반복시켜야할 때 주로 쓰인다.
// while 반복문은 기본적으로 다음과 같은 구조를 가지고 있다.
// while(조건식) {
// 조건식이 참인 동안 반복시킬 코드
// }
// if문과 마찬가지로 만약 해당 조건식이 처음부터 false가 나오면
// while 반복문은 아예 코드 실행을 하지 않는다.
public class Ex03While {
public static void main(String[] args) {
// while 조건식에서 사용할 int 변수 number
int number = 6;
// number가 1보다 크거나 같으면 "반복!!!!" 이라는 메시지를 출력하고
// number의 값을 1 감소시킨다.
while(number >= 1) {
System.out.println("반복!!!!");
number--;
}
}
}
package day03;
// While 예제
// 사용자로부터 글자를 입력받되,
// 사용자가 "A" 라고 입력하면 "프로그램을 종료합니다"가 출력되고
// 그 외는 다시 입력받는 프로그램
import java.util.Scanner;
public class Ex04while02 {
public static void main(String[] args) {
Scanner scanner= new Scanner(System.in);
// 사용자로부터 글을 입력받는다.
System.out.println("아무 글이나 입력해주세요.");
System.out.println("> ");
String input = scanner.nextLine();
while(!input.equals("A")) {
System.out.println("아무 글이나 입력해주세요.");
System.out.println("> ");
input = scanner.nextLine();
}
System.out.println("프로그램을 종료합니다.");
scanner.close();
}
}
package day03;
// 사용자로부터 username과 password를 입력 받아서
// username이 "admin"이고 password가 "1"이면
// "관리자님 환영합니다" 라는 메시지와 함께 프로그램이 종료되고
// 그 외는 "잘못 입력하셨습니다" 라는 메시지가 출력되고 다시 username과 password를 입력받는
// 프로그램을 작성해보세요.
// 12분간
import java.util.Scanner;
public class Ex05LogIn {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 사용자로부터 name를 입력받는다.
System.out.println("username을 입력해주세요.");
System.out.println("> ");
String username = scanner.nextLine();
// 사용자로부터 password를 입력받는다.
System.out.println("password을 입력해주세요.");
System.out.println("> ");
String password = scanner.nextLine();
// username과 password가 각각 "admin", "1"이 아니면 다시 입력받는다.
while(!(username.equals("admin") && password.equals("1")) ) {
System.out.println("잘못 입력하셨습니다.");
// 사용자로부터 name를 입력받는다.
System.out.println("username을 입력해주세요.");
System.out.println("> ");
username = scanner.nextLine();
// 사용자로부터 password를 입력받는다.
System.out.println("password을 입력해주세요.");
System.out.println("> ");
password = scanner.nextLine();
}
// 종료 메시지 출력
System.out.println("관리자님 환영합니다.");
scanner.close();
}
}
package day03;
// 무한반복문을 사용한 메뉴 만들기
import java.util.Scanner;
public class Ex07Menu {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(true) {
System.out.println("~~~~ 프로그램");
System.out.println("1. 1번기능 2. 2번기능 3. 3번기능 4. 종료");
System.out.print("> ");
int userChoice = scanner.nextInt();
if(userChoice ==1) {
// 1번 기능 코드 구현
System.out.println("1번 기능 실행");
} else if(userChoice == 2) {
// 2번 기능 코드 구현
System.out.println("2번 기능 실행");
} else if(userChoice == 3) {
// 3번 기능 코드 구현
System.out.println("3번 기능 실행");
} else if(userChoice == 4) {
System.out.println("프로그램을 사용해주셔서 감사합니다.");
// break 키워드는 반복문 혹은 switch조건문의 코드 블록을
// 종료시킨다.
break;
}
}
scanner.close();
}
}
package day03;
// 무한 반복문(Infinite Loop)
// 무한 반복문이란, 조건식을 체크할때마다 true가 나와서
// 반복문이 계속 실행되는 구조이다.
// 우리는 무한 반복문을 만드는 세가지 방법을 알아볼 것이다.
public class Ex06InfinteLoop {
public static void main(String[] args) {
//무한 반복문 1번
// 변수를 통해 조건식을 만들되, 만약 변수의 값이 불변한다면?
// int number =1;
// while(number > 0) {
// System.out.println("무한 반복문 1번");
// }
// 무한 반복문 2번.
// 항상 true가 나오는 조건식
// while(1> 0) {
// System.out.println("무한 반복문 2번");
// }
// 무한 반복문 3번.
// true
while(true) {
System.out.println("무한 반복문 3번");
}
}
}
package day03;
// 사용자로부터 번호, 이름, 국어, 영어, 수학 점수를 입력받아서
// 예쁘게 출력하는 프로그램.
// 번호 : ##번 이름: ###
// 국어 0##점 영어0##점 수학: 0##점
// 총점: 0##점 평균: 0##.##점
// 단, 잘못된 점수가 입력될 경우 올바른 점수가 입력될때까지 다시 입력을 받아야 합니다.
// 단, 입력 기능과 출력 기능을 분리하여 메뉴에서 1. 입력 2. 출력 3. 종료 중 하나를 선택하여
// 각각의 기능이 실행될 수 있도록 프로그램 코드를 작성해보시오.
// 중요한 팁: 변수의 유효 범위를 고려하여 변수의 선언 위치를 결정하세요.
// 심화: 만약 사용자가 아무런 입력을 하지 않고 출력 기능을 실행시키면
// "아직 입력된 정보가 존재하지 않습니다" 라고 출력되게 코드를 작성해보시오.
import java.util.Scanner;
public class GradeBook02 {
public static void main(String[] args) {
// 상수
// 과목의 숫자
final int SUBJECT_SIZE = 3;
// 사용자의 입력을 처리할 Scanner 변수 입력
Scanner scanner = new Scanner(System.in);
// 값을 유지할 변수 선언 및 초기화
int id = 0;
String name ="";
int korean = 0;
int english = 0;
int math = 0;
boolean inputSwitch = false;
while(true) {
System.out.println("1. 입력 2. 출력 3. 종료");
System.out.print("> ");
int userChoice = scanner.nextInt();
if(userChoice ==1) {
// 입력 기능 코드 시작
// 번호 입력
System.out.println("학생의 번호를 입력해주세요.");
System.out.print("> ");
id = scanner.nextInt();
// 이름 입력
System.out.println("학생의 이름을 입력해주세요.");
System.out.print("> ");
// 스캐너 버그를 해결하기 위한 scanner.nextLine() 단독 실행
scanner.nextLine();
name = scanner.nextLine();
// 국어 입력
System.out.println("학생의 국어 점수를 입력해주세요.");
System.out.print("> ");
korean = scanner.nextInt();
// 만약 사용자가 올바르지 않은 국어 점수를 입력하였을 경우
// 올바른 점수가입력될 때까지 다시 입력받는다.
while(korean < 0 || korean > 100) {
System.out.println("잘못 입력하셨습니다.");
System.out.println("학생의 국어 점수를 입력해주세요.");
System.out.print("> ");
korean = scanner.nextInt();
}
// 영어 입력
System.out.println("학생의 영어 점수를 입력해주세요.");
System.out.print("> ");
english = scanner.nextInt();
// 만약 사용자가 올바르지 않은 영어 점수를 입력하였을 경우
// 올바른 점수가 입력될 때까지 다시 입력받는다.
while(english < 0 || english > 100) {
System.out.println("잘못 입력하셨습니다.");
System.out.println("학생의 영어 점수를 입력해주세요.");
System.out.print("> ");
english = scanner.nextInt();
}
// 수학 입력
System.out.println("학생의 수학 점수를 입력해주세요.");
System.out.print("> ");
english = scanner.nextInt();
// 만약 사용자가 올바르지 않은 영어 점수를 입력하였을 경우
// 올바른 점수가 입력될 때까지 다시 입력받는다.
while(math < 0 || math > 100) {
System.out.println("잘못 입력하셨습니다.");
System.out.println("학생의 수학 점수를 입력해주세요.");
System.out.print("> ");
math = scanner.nextInt();
}
// 사용자가 데이터를 입력하였으므로
// inputSwitch에 true를 저장한다.
inputSwitch = true;
//입력 기능 코드 종료
} else if(userChoice == 2) {
//출력 기능 코드 시작
if(inputSwitch == true) {
// 사용자가 입력한 기록이 있으므로
// 출력 시작
int sum = korean + english + math;
double average = (double)sum / SUBJECT_SIZE;
System.out.printf("번호: %d번 이름: %s\n", id, name);
System.out.printf("국어: %03d점 영어: %03d점 수학: %03d점\n", korean, english, math);
System.out.printf("총점: %03d점 평균: %06.2f점\n", sum, average);
} else {
System.out.println("아직 입력된 데이터가 존재하지 않습니다.");
}
//출력 기능 코드 종료
} else if(userChoice == 3) {
//종료 메시지 출력 후 break 실행
System.out.println("프로그램을 사용해주셔서 감사합니다.");
break;
}
}
scanner.close();
}
}
package day03;
// 사용자로부터 점수를 입력받아서
// 90~ : A
// 80~ : B
// 70~ : C
// 60~ : D
// ~59 : F
// 가 출력되는 프로그램
// 단 사용자가 잘못된 형태의 점수를 입려할 경우
// 올바른 점수가 입력될 때까지 다시 입력을 받는다.
import java.util.Scanner;
public class LatterGrade02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 사용자로부터 점수를 입력 받는다.
System.out.println("점수를 입력해주세요.");
System.out.print("> ");
int score = scanner.nextInt();
// 만약 사용자가 잘못된 점수를 입력하였을 경우,
// 올바른 점수가 입려될 때까지 다시 입력을 받는다.
while(score < 0 || score > 100) {
System.out.println("잘못 입력하셨습니다.");
System.out.println("점수를 입력해주세요.");
System.out.println("> ");
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("B");
} else {
System.out.println("F");
}
scanner.close();
}
}
package day03;
// 사용자로부터 키와 몸무게를 입력받아서
// 비만도를 출력하는 프로그램을 작성하시오
// 결과)
// 키: #.##M 몸무게: ##.##KG
// BMI : ##.## 비만도: ###
// BMI 공식: 몸무게 (kg단위) / 키(m단위) / 키(m단위)
// 비만도 기준
// 18.5미만: 저체중
// 23미만: 정상체중
// 25미만: 과체중
// 그외: 비만
// 기네스북에 따르면 가장 키가 컸던 사람의 키는 2.72M였습니다.
// 또한 가장 무거웠던 사람의 몸무게는 635kg였습니다.
// 단, 사용자가 잘못된 값을 입력할 경우 더이상의 진행없이
// "잘못된 입력으로 프로그램을 종료합니다"만 출력되게 코드를 작성하시오.
import java.util.Scanner;
public class BmiChecker {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 입력
System.out.println("몸무게를 입력해주세요.");
System.out.println(" >");
int weight = scanner.nextInt();
System.out.println("키를 입력해주세요.");
System.out.println(" >");
int height = scanner.nextInt();
// 출력
int BMI = ((weight/height)/height);
if(BMI >= 18.5) {
System.out.println("저체중");
} else if(BMI < 23) {
System.out.println("정상체중");
} else if(BMI < 25) {
System.out.println("과체중");
} else if(BMI > 25) {
System.out.println("비만");
} else {
System.out.println("\"잘못된 입력으로 프로그램을 종료합니다\"");
}
// 결과
System.out.print("키: " + height + "M" + " 몸무게: " + weight + "KG" );
System.out.println("BMI:" + BMI + "비만도:"+ BMI + "") ;
// 기네스북에 따르면 가장 키가 컸던 사람의 키는 2.72M였습니다.
// 또한 가장 무거웠던 사람의 몸무게는 635kg였습니다.
// 결과)
// 키: #.##M 몸무게: ##.##KG
// BMI : ##.## 비만도: ###
scanner.close();
}
}
------------
정답은 아래
package day03;
// 사용자로부터 키와 몸무게를 입력받아서
// 비만도를 출력하는 프로그램을 작성하시오
// 결과)
// 키: #.##M 몸무게: ##.##KG
// BMI : ##.## 비만도: ###
// BMI 공식: 몸무게 (kg단위) / 키(m단위) / 키(m단위)
// 비만도 기준
// 18.5미만: 저체중
// 23미만: 정상체중
// 25미만: 과체중
// 그외: 비만
// 기네스북에 따르면 가장 키가 컸던 사람의 키는 2.72M였습니다.
// 또한 가장 무거웠던 사람의 몸무게는 635kg였습니다.
// 단, 사용자가 잘못된 값을 입력할 경우 더이상의 진행없이
// "잘못된 입력으로 프로그램을 종료합니다"만 출력되게 코드를 작성하시오.
import java.util.Scanner;
public class BmiChecker {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 1. 키를 입력받는다.
System.out.println("키를 입력해주세요.");
System.out.print("> ");
double height = scanner.nextDouble();
if(height > 0 && height <= 2.72) {
// 올바른 키이므로 몸무게를 입력받는다.
System.out.println("몸무게를 입력해주세요.");
System.out.println("> ");
double weight = scanner.nextDouble();
if(weight > 0 && weight <= 635) {
// 올바른 몸무게이므로 BMI 계산후 결과를 출력한다.
double bmi = weight / height / height;
// 비만도 값을 저장할 String 변수 result
String result;
// bmi의 값에 따라 result에 값 저장
if(bmi < 18.5) {
result = "저체중";
} else if(bmi < 23) {
result = "정상 체중";
} else if(bmi < 25) {
result = "과체중";
} else {
result = "비만";
}
System.out.printf("키: %.2fM 몸무게: %.2fKG\n", height, weight);
System.out.printf("BMI: %.2f 비만도: %s\n", bmi, result);
} else {
// 올바르지 않은 몸무게이므로 경고메시지를 출력한다.
System.out.println("잘못된 입력으로 프로그램이 종료됩니다.");
}
} else {
// 올바른 키가 아니므로 경고메시지를 출력한다.
System.out.println("잘못된 입력으로 프로그램이 종료됩니다.");
}
}
}
-----
package day03;
// 사용자로부터 성별, 나이, 신체등급순으로 입력을 받아서
// 현역, 공익, 면제가 출력되는프로그램을 작성하시오.
// 성별의 경우 int로 입력을 받아서 1은 남자 2는 여자로 판단합니다.
// 여성의 경우, "여성에게는 국방의 의무가 부여되지 않습니다" 라는 메시지만 출력되고
// 남성 미성년자일 경우, "아직 신체등급이 부여되지 않았습니다" 라는 메시지만 출력되게
// 코드를 작성하시오
// 신체등급에 따른 군복무
// 1~3: 현역
// 4: 공익
// 그외: 면제
// 20분간
import java.util.Scanner;
public class Army {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 1. 성별을 입력받는다.
System.out.println("성별을 입력해주세요.");
System.out.println("> ");
int gender = scanner.nextInt();
// 2. 나이를 입력받는다.
System.out.println("나이를 입력해주세요.");
System.out.println("> ");
int age = scanner.nextInt();
// 3. 신체등급을 입력받는다.
System.out.println("신체등급을 입력해주세요.");
System.out.println("> ");
int grade = scanner.nextInt();
String result;
if (gender != 1) {
System.out.println("여성에게는 국방의 의무가 부여되지 않습니다.");
} else if (age > 5) {
System.out.println("아직 신체등급이 부여되지 않았습니다.");
if(grade > 1 && grade < 3 ) {
result = "현역";
} else if(grade == 4 ) {
result = "공익";
} else {
result = "면제";
}
System.out.println(result);
} scanner.close();
}
}
---
package day03;
// 사용자로부터 성별, 나이, 신체등급순으로 입력을 받아서
// 현역, 공익, 면제가 출력되는프로그램을 작성하시오.
// 성별의 경우 int로 입력을 받아서 1은 남자 2는 여자로 판단합니다.
// 여성의 경우, "여성에게는 국방의 의무가 부여되지 않습니다" 라는 메시지만 출력되고
// 남성 미성년자일 경우, "아직 신체등급이 부여되지 않았습니다" 라는 메시지만 출력되게
// 코드를 작성하시오
// 신체등급에 따른 군복무
// 1~3: 현역
// 4: 공익
// 그외: 면제
// 20분간
import java.util.Scanner;
public class Army {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 1. 성별을 입력받는다.
System.out.println("성별을 입력해주세요. (1은 남자 2는 여자)");
System.out.println("> ");
int gender = scanner.nextInt();
if (gender == 1) {
// 남성이므로 나이 입력
System.out.println("나이를 입력해주세요.");
System.out.println("> ");
int age = scanner.nextInt();
//성인이면 신체 등급 입력을, 미성년자이면 메시지만 출력되게 코드 작성
if(age >= 19) {
// 성인이므로 신체 등급 입력
System.out.println("신체등급을 입력해주세요.");
System.out.println("> ");
int level = scanner.nextInt();
if( level <= 3) {
System.out.println("현역입니다.");
} else if(level == 4) {
System.out.println("공익입니다.");
} else {
System.out.println("면제입니다.");
}
} else {
//미성년자이므로 메시지만 출력
System.out.println("여성에게는 국방의 의무가 부여되지 않습니다.");
}
} else {
// 여성이므로 메시지만 출력
System.out.println("여성에게는 국방의 의무가 부여되지 않습니다.");
}
}
}
// 남성이면 나이 입력을, 여성이면 메시지만 출력되게 코드 작성
----while 문 제 내답
package day03;
// 사용자로부터 username과 password를 입력 받아서
// username이 "admin"이고 password가 "1"이면
// "관리자님 환영합니다" 라는 메시지와 함께 프로그램이 종료되고
// 그 외는 "잘못 입력하셨습니다" 라는 메시지가 출력되고 다시 username과 password를 입력받는
// 프로그램을 작성해보세요.
// 12분간
import java.util.Scanner;
public class Ex05LogIn {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name = "admin";
String password = "1";
// 사용자로부터 name를 입력받는다.
System.out.println("username을 입력하세요.");
System.out.println("> ");
String name = scanner.nextLine();
// 사용자로부터 password를 입력받는다.
System.out.println("password를 입력하세요.");
System.out.println("> ");
String password = scanner.nextLine();
while((!(name == "admin") && !(password == "1")).equals) {
System.out.println("password를 입력하세요.");
System.out.println("> ");
password = scanner.nextLine();
}
System.out.println("관리자님 환영합니다.");
scanner.close();
}
}
--while 문제 정답
-----------------
마지막 예제 내답
package day03;
// 사용자로부터 번호, 이름, 국어, 영어, 수학 점수를 입력받아서
// 예쁘게 출력하는 프로그램.
// 번호 : ##번 이름: ###
// 국어 0##점 영어0##점 수학: 0##점
// 총점: 0##점 평균: 0##.##점
// 단, 잘못된 점수가 입력될 경우 올바른 점수가 입력될때까지 다시 입력을 받아야 합니다.
// 단, 입력 기능과 출력 기능을 분리하여 메뉴에서 1. 입력 2. 출력 3. 종료 중 하나를 선택하여
// 각각의 기능이 실행될 수 있도록 프로그램 코드를 작성해보시오.
// 중요한 팁: 변수의 유효 범위를 고려하여 변수의 선언 위치를 결정하세요.
// 심화: 만약 사용자가 아무런 입력을 하지 않고 출력 기능을 실행시키면
// "아직 입력된 정보가 존재하지 않습니다" 라고 출력되게 코드를 작성해보시오.
import java.util.Scanner;
public class GradeBook02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(true) {
System.out.println("점수 계산 프로그램");
System.out.println("1. 입력 2. 출력 3. 3. 종료");
System.out.print("> ");
int userChoice = scanner.nextInt();
if(userChoice ==1) {
System.out.println("1. 입력");
} else if(userChoice == 2) {
System.out.println("2. 출력");
} else if(userChoice == 3) {
System.out.println("종료. 프로그램을 사용해주셔서 감사합니다.");
break;
}
if (userChoice ==1) {
final int SUBJECT_SIZE = 3;
// 1. 입력
// A. 번호 입력
System.out.println("번호를 입력해주세요.");
System.out.print("> ");
int id = scanner.nextInt();
// B. 이름 입력
System.out.print("이름을 입력해주세요.");
System.out.print("> ");
scanner.nextLine();
String name = scanner.nextLine();
// C. 국어 점수 입력
System.out.println("국어 점수를 입력해주세요.");
System.out.print("> ");
int korean = scanner.nextInt();
// D. 영어 점수 입력
System.out.println("영어 점수를 입력해주세요.");
System.out.print("> ");
int english = scanner.nextInt();
// E. 수학 점수 입력
System.out.println("수학 점수를 입력해주세요.");
System.out.print("> ");
int math = scanner.nextInt();
// 만약 사용자가 잘못된 점수를 입력하였을 경우,
// 올바른 점수가 입력될 때까지 다시 입력을 받는다.
while(korean < 0 || korean >= 101) {
System.out.println("잘못 입력하셨습니다.");
// 국어 점수 입력
System.out.println("국어 점수를 입력해주세요.");
System.out.print("> ");
korean = scanner.nextInt();
}
while(english < 0 || english >= 101) {
System.out.println("잘못 입력하셨습니다.");
// 영어 점수 입력
System.out.println("영어 점수를 입력해주세요.");
System.out.print("> ");
korean = scanner.nextInt();
}
while(math < 0 || math >= 101) {
System.out.println("잘못 입력하셨습니다.");
// 수학 점수 입력
System.out.println("수학 점수를 입력해주세요.");
System.out.print("> ");
math = scanner.nextInt();
}
int sum = korean + english + math;
double average = (double)sum / SUBJECT_SIZE;
if (userChoice ==2) {
// 번호 : ##번 이름: ###
System.out.printf("번호: %d번 이름: %s\n", id, name);
// 국어 0##점 영어0##점 수학: 0##점
System.out.printf("국어: %03d점 영어: %03d점 수학: %03d점\n", korean, english, math);
// 총점: 0##점 평균: 0##.##점
System.out.printf("총점: %03d점 평균: %06.2f점\n", sum, average);
}
if (userChoice ==3) {
System.out.println("종료. 프로그램을 사용해주셔서 감사합니다.");
break;
}
scanner.close();
}
}
}
}
선생님 답
package day03;
// 사용자로부터 점수를 입력받아서
// 90~ : A
// 80~ : B
// 70~ : C
// 60~ : D
// ~59 : F
// 가 출력되는 프로그램
// 단 사용자가 잘못된 형태의 점수를 입려할 경우
// 올바른 점수가 입력될 때까지 다시 입력을 받는다.
import java.util.Scanner;
public class LatterGrade02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 사용자로부터 점수를 입력 받는다.
System.out.println("점수를 입력해주세요.");
System.out.print("> ");
int score = scanner.nextInt();
// 만약 사용자가 잘못된 점수를 입력하였을 경우,
// 올바른 점수가 입려될 때까지 다시 입력을 받는다.
while(score < 0 || score > 100) {
System.out.println("잘못 입력하셨습니다.");
System.out.println("점수를 입력해주세요.");
System.out.println("> ");
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("B");
} else {
System.out.println("F");
}
scanner.close();
}
}
'개발자, 그 여정 > 기초특강' 카테고리의 다른 글
자바_기초특강4 (0) | 2022.06.03 |
---|---|
자바_기초 특강2 (0) | 2022.06.03 |
자바_기초 특강1 (0) | 2022.06.03 |