switch 문
조건식 하나로 많은 경우의 수를 처리할 때 사용하며 이때 조건식의 결과는 정수 또는 문자, 문자열
조건식의 결과 값과 일치하는 case문으로 이동 default문은 일치하는 case문이 없을 때 수행 (=else)
public void switchTest() {
//switch문활용하기
//정해진 값에 대해서 분기처리할대 사용하는 조건문
//메뉴기능을 구현할때 많이 사용
//switch(지정된값{case 값 : 실행될 로직 break;})
//()안에는 변수, 변수를 가지고 연산, 기능호출
//()안의 값의 타입은 정해져있음
//int, String, char
System.out.println("=== 점심메뉴선택 ===");
System.out.println("1. 구내식당");
System.out.println("2. 도시락");
System.out.println("3. 순대국밥");
System.out.println("4. 마라탕");
System.out.println("번호 : ");
Scanner sc=new Scanner(System.in);
int choice=sc.nextInt();
// 동등비교한다 choice와 case 1번과 동등비교 맞으면 break; 다르면 다른케이스 분기처리//
// break를 지우면 어떻게 될까? 해보기
String msg="점심";
//외부에 선언된 변수도 사용가능하다
switch(choice) {
case 1 : //내부에 변수선언도 가능하다.
//홍길동은 case1에서만 선언되서 다시쓸려면 초기화 해야한다
//하지만 String name을 다른 케이스에 쓰면 duplicate발생한다
String name="홍길동은";
System.out.println(msg+name+" 구내식당 어쩔 수 없이 먹어요...ㅠ");
break;
case 2 : System.out.println(msg+"도시락 아침에 챙기기 힘들어요...");
break;
case 3 : System.out.println(msg+"옆건물 3층에 순대국집있어요");
break;
case 4 : System.out.println(msg+"옆건물 1층에 마라탕있어요");
break;
default : System.out.println("1~4번만 가능합니다"); //else 구문과 같다
}
System.out.println("확인할 계절 :");
int month=sc.nextInt();
switch(month) {
case 1: case 2: case 12: System.out.println("겨울입입니다");break;
case 3: case 4: case 5: System.out.println("봄입니다");break;
}
//switch()안에 char형 사용하기
System.out.println("==== BS중국집 ===");
System.out.println("가. 짜장면");
System.out.println("나. 짬뽕");
System.out.println("다. 탕수육");
System.out.println("입력 : ");
char menu=sc.next().charAt(0);
switch(menu){
//charAt이므로 맞는 리터럴 표시 ''사용
case '가' : System.out.println("9000원입니다"); break;
case '나' : System.out.println("10000원입니다");break;
case '다' : System.out.println("18000원입니다");break;
//String형 이용하기
System.out.println("=== 문자열 이용하기 ====");
System.out.println("당신의 취미는(운동,노래,영화감상 : ");
System.out.println();
String hobby=sc.next();
switch(hobby) {
case "운동" : System.out.println("몸에 좋아요!");break;
case "노래" : System.out.println("반장님이 잘해요!"); break;
case "영화감상" : System.out.println("오펜하이머재미있어요!"); break;
}
}
// switch(choice>2){
// } boolean 타입은 swith문은 못쓴다
// double height=180.5;
// switch(height) {
//
// } double 타입도 안된다
// //int랑 String enum 타입만 사용가능
// switch(hobby.length()) {
// case 3 :
// case 4 :
// }
// // 어떤 특정수를 5로 나누고 0부터 4까지
// switch(choice%5) {
//
// }
// switch(choice) {
// case 1: new ConditionController().switchTest(); 이런식도 가능
// case 2:
// case 3:
//분식집에서 주문을 받는 프로그램 만들기
//1. 떡볶이(3000), 2.순대(2500), 3.튀김(3000)
//4. 김밥(3500), 5.라면(4500)
//선택하면 주문 메뉴 이름과 금액을 출력
//주문한 메뉴는 000이고 결제금액은 0000원입니다. 출력
//없는것을 고르면 잘못고르셨습니다. 출력,
//변수 사용해서 활용해보기
public void busicMenu() {
Scanner sc=new Scanner(System.in);
System.out.println("==== 메뉴판 ====");
System.out.println("1. 떡볶이\t3000원");
System.out.println("2. 순 대\t3000원");
System.out.println("3. 튀 김\t3000원");
System.out.println("4. 김 밥\t3000원");
System.out.println("5. 라 면\t3000원");
System.out.println("입력 : ");
int menu=sc.nextInt();
String menuName="";
int price=0;
switch(menu) {
// case 1:
// System.out.println(msg+" 떡볶이이고 3000"+mssg);
// break;
// case 2:
// System.out.println(msg+" 순대 2500"+mssg);
// break;
// case 3:
// System.out.println(msg+" 튀김 3000"+mssg);
// break;
// case 4:
// System.out.println(msg+" 김밥 3500"+mssg);
// break;
// case 5:
// System.out.println(msg+" 라면 4500"+mssg);
// break;
// default : System.out.println("없는 메뉴입니다");
case 1 : menuName="떡볶이";price=3000;break;
case 2 : menuName="순대";price=2500;break;
case 3 : menuName="튀김";price=3000;break;
case 4 : menuName="김밥";price=3500;break;
case 5 : menuName="라면";price=4500;break;
default : System.out.println("잘못고르셨습니다.");
}
if(menu>=1&&menu<=5) {
System.out.println("주문한 메뉴는"+menuName
+"이고 결제금액은"+price+"원입니다.");
}
}
public void menu() {
Scanner sc=new Scanner(System.in);
System.out.println("기능 실행하기");
System.out.println("1. 기본 if기능 실행");
System.out.println("2. if else기능 실행");
System.out.println("3. 분식메뉴 기능 실행");
System.out.println("선택");
int choice=sc.nextInt();
switch(choice) {
case 1: basicIf();break;
case 2: ifelseTest();break;
case 3: busicMenu();break;
}
}
반복문
프로그램 수행 흐름을 바꾸는 역할을 하는 제어문 중 하나로 특정 문장들을 반복해서 수행하도록 함
반복문의 종류
for문
for(초기식; 조건식; 증감식){
수행될 문장;
}
1회전 : 초기식 확인 후 조건식 확인
조건식이 true면 문장 수행
조건식이 false면 수행하지 않음
2회전 : 증감식 연산 후 조건식 확인
조건식이 true면 문장 수행
조건식이 false면 수행하지 않음
*2회전 이상부터는 모두 2회전과 동일하고 조건식이 false가 나올 때까지 문장 수행
package cob.repeat.controller;
import java.util.Scanner;
public class RepeatController {
public void basicfor(){
//기본 for문 이용하기
//특정 코드를 원하는 만큼 반복시킬때 사용하는 명령어
//for(초기식;조건식;증감식){반복시킬 코드를 작성}
//초기식 : 변수선언, 반복할 횟수를 기록하는 저장공간.
//조건식 : 반복의 실행여부를 결정하는 기준,(true 실행. false중단) 비교연산
// *초기식에 선언한 변수를 이용해서 조건문 작성
//증감식 : 초기식에 사용한 변수를 즈악, 감속시키는 연산 ++,--
//안녕하세요 10번 출력하기
// System.out.println("안녕하세요");
// System.out.println("안녕하세요");
// System.out.println("안녕하세요");
// System.out.println("안녕하세요");
// System.out.println("안녕하세요");
// System.out.println("안녕하세요");
// System.out.println("안녕하세요");
// System.out.println("안녕하세요");
// System.out.println("안녕하세요");
// System.out.println("안녕하세요");
//안녕하세요 10번 출력하기
for(int i=1;i<=10;i++) {
System.out.println("안녕하세요");
}
// for(int i=1;i<=100;i++) {
// 100번 반복
// }
// for(int i=1;i<=5;i++) {
// 5번 반복
// }
//오늘 점심 뭐먹지?를 30번 출력하기
for(int i=1;i<=30;i++) {
System.out.println("오늘 점심 뭐먹지?");
}
//사용자에게 메세지를 5번 입력받아 출력하기
Scanner sc=new Scanner(System.in);
// for(int i=1;i<=5;i++) {
// System.out.println("메세지 : ");
// //입력받고
// String msg=sc.nextLine();
// //리턴하고
// System.out.println(msg);
// }
//1부터 10까지의 수를 출력하는 기능 구현하기
//1 2 3 4 5 6 7 8 9 10
for(int i=1;i<=10;i++) {
System.out.println(i+" ");
}
System.out.println();
//1~100까지의 수 중 짝수만 출력하기
for(int i=1;i<=100;i++) {
if (i%2==0){
System.out.println(i+" ");
}
}
//for 문 {} 내부에 변수선언, 조건문, 연산자 등 모두 사용이 가능
//{}내부에서 선언한 변수는 {}내에서만 사용이 가능하다 하지만 외부에서는 사용할수 없다
//for문 전에 선언한 변수는 for문 {}내에서 사용할 수 있다.
//for문의 초기식에 선언된 변수는 for내부에서 사용할 수 있고, 외부에서는 사용할수 없다
double avg=0.0;
for(int i=1;i<=10;i++) {
int temp=100;
avg+=i;</
'Java' 카테고리의 다른 글
| Java (4-1) 배열 (0) | 2023.09.02 |
|---|---|
| Java (3-3) 반복문 (0) | 2023.09.02 |
| Java (3-1) 제어문 (0) | 2023.08.30 |
| Java (2) 연산자 (0) | 2023.08.29 |
| Java(1) 기초,변수 (0) | 2023.08.28 |