본문 바로가기

Java

Java (3-2) 제어문

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