스위치 문은 아래와 같이 쓸 수 있다
Switch(변수){
case 1:
변수의 값이 1일경우 실행
break;
case 2:
변수의 값이 2 일경우 실행
break;
case 3:
변수의 값이 3일 경우 실행
break;
default :
변수값이 아무것도 포함되지 않을경우 실행
추가적으로 설명을 하자면
case 1 ,2 3에 오는 값은 정수 및 상수(변하지 않는수) 가 들어가야하며
문자 'A' , 'B', 'C'도 들어올수있고 문자열 "종료" , "시작" , 도 들어갈수있다
단. 실수(0.1234124)는 들어갈수없다
While문에 대해 간략하게 설명을하자면
while(조건문){
}
ex)
int i=0;
while(i<10){
System.out.printf("%d의 값이 10이 넘어가지 않을때까지 반복합니다\n",i);
i++;
}
ex2)
int x=10;
while(true){
if(x<0)break;
x--
}
//break;는 지금 반복하고있는 반복문에서 빠져나옴
중첩반복일 경우
가장 마지막에 반복하고있는 부분에서만 빠져나옴
while( y ){
}
여기서 범위의 조건이 아닌 true false로(boolean) 했을경우엔
y의 값이 false면 while문의 반복은 종료가된다
이런식으로 쓸 수 있다
아래 예제를보자
import java.util.Scanner;
public class Example {
public static void main(String[] args) {
//조건분기문-선택문
//switch ~ case ~ (이런 경우의수를 case라고 함)
/*
switch(변수) {
case 값1:
실행문1;(변수의 값이 값1과 같다면 실행문1을 실행후 break;를 걸어라)
break;
case n;
실행문n;
break;
default;
실행문; (변수의값이 어느 case에도 속하지않으면 default를 실행함)
}
*/
//a+=b == a=a+b
Scanner sc=new Scanner(System.in);
Scanner sc2=new Scanner(System.in);
long money;
long balance=0;
String id ;
boolean ps =true;
while(ps){
//while은 (ps)의값이 참인 동안 반복하여라 라는 뜻 (false가 입력되면 반복의 끝)
System.out.println("\n원하시는 번호를 누르세요[0-4]\n 1.입금\t2.출금\t3.조회\t4.가입\t0.취소");
int num = sc.nextInt();
switch(num){
case 0:
System.out.println("취소");
ps = false;
break;
case 1:
System.out.println("입금할 금액을 적으세요 : ");
money = sc.nextLong();
balance+=money;
System.out.println("남은 잔액입니다 : "+balance);
break;
case 2:
System.out.println("출금할 금액을 적으세요 : ");
money = sc.nextInt();
balance -=money;
System.out.println("남은 잔액입니다 : "+balance);
break;
case 3:
System.out.println("현재의 잔액은 : "+balance);
break;
case 4:
System.out.println("가입할 계좌번호를 입력하세요 : ");
id=sc2.nextLine();
//nextInt다음 nextLine은 나오질못함
//nextLine은 한줄단위라서
//햇갈리지않기위해 sc를 나눠서썻는데 오류가 안나게하고싶으면
//id=sc2.nextLine();전에 sc.nextLine();을 쓰고 다시 id=sc2.nextLine();을 써도 해결이된다
(개행문자를 제거하여서)
break;
default:
System.out.println("번호를 잘못입력하였습니다");
}
}//
}
}
import java.util.Scanner;
public class Example {
public static void main(String[] args) {
/*
String sw = "?";
switch (sw){
case "a":
case "A":
실행값
break;
case "b":
case "B":
//이런식으로 케이스 두개를 같이쓸수도있다
*/
Scanner sc = new Scanner(System.in);
boolean a= true;
while(a){
System.out.println("혈액형을 입력하세요 :");
String sw=sc.nextLine();
switch(sw){
case "a":
case "A":
System.out.println("당신의 혈액형은 A형입니다.");
a=false;
break;
case "b":
case "B":
System.out.println("당신의 혈액형은 B형입니다.");
a=false;
break;
case "ab":
case "Ab":
case "AB":
case "aB":
System.out.println("당신의 혈액형은 AB형입니다.");
a=false;
break;
case "O":
case "o":
System.out.println("당신의 혈액형은 O형입니다.");
a=false;
break;
default:
System.out.println("올바른 혈액형이 아닙니다.");
}//while{}
}
}
}
public class Example {
public static void main(String[] args) {
/*
String data = "C";
//yield -> 자바 12버전이후 추가된문법(옐드)
int num =switch(data){
case"A" ->100;
case "B" ->80;
case "C" ->60;
} //break;없이 data의 값이 A면 100대입 B면 80대입 :값은 60이 나옴
작성기준 java se 8버전을 쓰고있는 나는 써보지못했다
*/
float num1 = (float) Math.random(); //Math.random은 0<=x<1의 실수를 구하는 메소드이다
int num = (int) (Math.random()*6)+1; //1~6을 무작위(랜덤) 임의의수를 대입
//정육면체 주사위를 만들고싶으면 *6 +1 을하면된다
//왜 +1을 하냐면 Math.random은 0을 포함 1까지의 사이 즉 0.99999999999....까지만 나오는데
// 주사위에는 0이 없고 5.99999999999...를 int값으로 변환하면 5가 나오기때문
int n45 = (int) (Math.random()*45)+1; //45를 포함한 그 사이의 임의의수를 대입
System.out.println(num);
//math.random을 이용하여 가위바위보도 가능하다 만들기 가능
if(num ==1 || num ==2){
System.out.println("하위수");
}else if(num== 3 || num==4){
System.out.println("중위수");
}else {
System.out.println("상위수");
}
//==
switch(num){
case 1:
case 2:
System.out.println("하위수");
break;
case 3:
case 4:
System.out.println("중위수");
break;
default:
System.out.println("상위수");
}
}
}
혹시나 필요할까 싶어 가위바위보 예제도 만들었다
import java.util.Scanner;
public class Gbb {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
int com=(int) (Math.random()*3)+1;
//컴퓨터가 낼 가위바위보값의 랜덤(+1을 안해도되지만 위 예제랑 햇갈리지않기위해 +1을 해둿다
System.out.println("가위바위보[1]가위 [2]바위 [3]보");
int a = sc.nextInt();
System.out.println("나 : "+a);
System.out.println("컴퓨터 : "+com);
switch(a){
case 1:
if(com==1){
System.out.println("draw");
}else if(com==2){
System.out.println("lose");
}else{
System.out.println("win");
}
break;
case 2:
if(com==1){
System.out.println("win");
}else if(com==2){
System.out.println("draw");
}else{
System.out.println("lose");
}
break;
case 3:
if(com==1){
System.out.println("lose");
}else if(com==2){
System.out.println("win");
}else{
System.out.println("draw");
}
break;
default:
System.out.println("잘못입력하였습니다");
}
sc.close();
}
}