1. String str = ""; 을 이용해서 간단하게 적기
public void practice1() {
System.out.println("1. 입력");
System.out.println("2. 수정");
System.out.println("3. 조회");
System.out.println("4. 삭제");
System.out.println("9. 종료");
Scanner sc = new Scanner(System.in);
System.out.print("메뉴 번호를 입력하세요 : ");
int select = sc.nextInt();
String str = "";
switch(select) {
case 1: str = "입력"; break;
case 2: str = "수정"; break;
case 3: str = "조회"; break;
case 4: str = "삭제"; break;
case 9: str = "종료"; break;
default: System.out.println("잘못 입력하셨습니다."); return;
}
System.out.println(str + "메뉴입니다."); //case 1,2,3,4,9 수행 후 출력
//default 수행 후 return되므로 이 문장은 출력 X
1) case마다 System.out.println을 적지 않는 방법
2) 반복되는 출력문인 "메뉴입니다."를 이용하기
3) switch문 case마다 공통적으로 출력되는 문장 출력하는 것이 아닌,
switch문을 빠져나갔을 때 공통적으로 출력되는 문장 출력되도록 하기
2. switch - break;있을 때까지 아래로 수행
Scanner sc = new Scanner(System.in);
System.out.print("권한을 확인하고자 하는 회원 등급 : ");
switch(sc.nextLine()) { //이렇게 바로 입력해서 비교할 수도 있음!
case "관리자":
System.out.println("회원관리, 게시글 관리");
case "회원" :
System.out.println("게시글 작성, 댓글 작성");
case "비회원" :
System.out.println("게시글 조회");
break;
default :
System.out.println("잘못 입력했습니다.");
return; //break;도 가능
}
1) "관리자" 입력한 경우
회원관리, 게시글 관리
게시글 작성, 댓글 작성
게시글 조회
2) "회원" 입력한 경우
게시글 작성, 댓글 작성
게시글 조회
3) "비회원" 입력한 경우
게시글 조회
3. 중첩 조건문(if) - 조건 나누는 것 잘 보자!
String id = "user1";
String pw = "1234";
Scanner sc = new Scanner(System.in);
System.out.print("아이디 : ");
String user_id = sc.nextLine();
System.out.print("비밀번호 : ");
String user_pw = sc.nextLine();
if(id.equals(user_id)) {
if(pw.equals(user_pw)) {
System.out.println("로그인 성공");
}else {
System.out.println("비밀번호가 틀렸습니다.");
}
}else {
if(pw.equals(user_pw)) {
System.out.println("아이디가 틀렸습니다.");
}else {
System.out.println("모두 틀렸습니다.");
}
}
1) id 맞음 --> 1-1) 비번 맞음 : 로그인 성공
1-2) 비번 틀림 : 비밀번호가 틀렸습니다.
2) id 틀림 --> 1-1) 비번 맞음 : 아이디가 틀렸습니다.
1-2) 비번 틀림 : 모두 틀렸습니다.
4. 중첩조건문 - 하나의 조건문 안에 다른 조건문 2개 만들기!
Scanner sc = new Scanner(System.in);
System.out.print("중간 고사 점수: ");
int mid = sc.nextInt();
System.out.print("기말 고사 점수: ");
int fin = sc.nextInt();
System.out.print("과제 점수: ");
int work= sc.nextInt();
System.out.print("출석 회수: ");
int attend= sc.nextInt();
double total = mid*0.2 + fin*0.3 + work*0.3 + attend;
System.out.println("========결과========");
if(total>=70 && attend >= 20*0.7) {
System.out.println("중간 고사 점수(20) : "+ mid*0.2);
System.out.println("기말 고사 점수(30) : "+ fin*0.3);
System.out.println("과제 점수 (30) : "+ work*0.3);
System.out.println("출석 점수 (20) : "+ attend*1.0);
System.out.println("총점 : " + total);
System.out.println("PASS");
}else { //총점이 부족할 수도 있고, 출석 횟수가 부족할 수도 있고, 아니면 둘다 부족할 수도 있음
if(attend < 20*0.7) {
System.out.println("FAIL [출석 횟수 부족] (" + attend + "/20)");
}
// 위아래 조건문 각각 별개 --> 만일 둘다 부족할 경우 둘 다 실행될 것!
if(total < 70) {
System.out.println("FAIL [점수 미달] (총점 " + total + ")");
}
}
1) System.out.println("========결과========");
if/else문에 각각 적어주지 않고 맨 앞에 빼서 반복적으로 적지 않는다!
2)
else {
if ( attend < 20*0.7 ) {
System.out.println( "FAIL [출석 횟수 부족] (" + attend + "/20)");
}
if ( total < 70 ) {
System.out.println( "FAIL [점수 미달] (총점 " + total + ")");
}
}
else { } 안에 별개의 if문 2개를 작성
--> if문 2개 모두 조건이 충족되면
--> 출력도 2개 문장 모두 된다!!
'Java > Java 문제' 카테고리의 다른 글
[코테] level1 - 문자열 (0) | 2021.06.23 |
---|---|
[Java] 객체배열 & mvc 문제 정리1_(객체배열 복사_System.arraycopy( )) (0) | 2021.05.18 |
[Java] 배열_실습문제(easy & hard) (0) | 2021.05.05 |