[day04]
1. 조건문 switch
다중 선택문 : 하나의 변수값을 평가하여, 각 값에 대해 개별적인 처리를 하는 문장.
1) 구조
switch(변수){
case 값1 : // 값1과 변수의 값이 동일한 경우 아래 샐행문들 실행~
실행문들....
break; // 위 실행문들을 실행하고 switch 강제종료!!
case 값2 :
실행문들....
break;
case 값3 :
실행문들....
break;
...
default :
실행문들....
break; // 마지막 break는 생략가능
}
2) 특징과 주의점
1. switch 문으로 평가 할 수 있는 변수는 주로 정수형, String
(int, char, String)
2. case 다음에는 반드시 값이 하나가 와야한다.
3. case 0 : .... case 2 : ... 와 같이 반드시 값을 정렬할 필요없다.
4. dafault 는 생략가능
5. case 별로 {}로 묶지 않는다. 콜론 : 으로 영역 인식.
6. 다음 case가 실행되지 않도록 할 경우에는
2. 반복문 while
1) 조건식을 먼저 검사한 후, 실행하는 반복문 (루프)
2) 실행문 영역 {}안에서 반복(루프)를 종료할 수 있게 만들어 줘야한다.
3) 구조
#1. 반복의 횟수를 알때
변수 = 초기값;
while(조건식){
// 반복해서 실행할 명령문 작성
증감식;
}
#2. 무한반복 : 반복횟수가 달라질때
while(true){
반복해서 실행할 명령문.....
if(조건){break;} //종료시점이 반드시 필요함!!!
}
3. 반복문 do-while (잘 안씀)
선 실행 후 비교 : 실행 먼저한 후 조건 검사하는 형태
1) 구조
do {
// 반복해서 실행할 명령문...
}while(조건식); // ; 꼭붙일것
4. 반복문 for
지정된 수만큼 반복할때 사용
1) 구조
1 2 4
for(초기식; 조건식; 증감식;){
// 반복해서 실행할 명령문들.... 3
}
1번 -> 2번(조건이 참이면) -> 3번 -> 4번 -> (2 -> 3 -> 4) -> 2번 (거짓-> 종료!)
초기식 : for 문 처음 시작할때 한번만 실행.
조건식 : 결과가 true/ false 되도록
증감식 : 1씩 증/감 할때는 증감연산자(++;) 주로 사용
package day04;
import java.util.Scanner;
public class Test30 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력>>");
int num = Integer.parseInt(sc.nextLine());
switch(num) {
case 1 :
System.out.println("1을 입력하셨습니다");
break;
case 2 :
System.out.println("2을 입력하셨습니다");
break;
case 3 :
System.out.println("3을 입력하셨습니다");
break;
default :
System.out.println("1.2.3이 아닌 숫자를 입력하셨습니다");
break;
}
System.out.println("프로그램 종료!!");
sc.close();
}
}
package day04;
public class Test31 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//char ch = 'A';
String str = "A" ;
switch(str) {
case "A" :
System.out.println("AAA");
break;
case "B" :
System.out.println("BBB");
break;
case "C" :
System.out.println("CCC");
break;
/* case 'B' :
System.out.println("BBB");
break;
case 'C' :
System.out.println("CCC");
break;
*/
}
}
}
package day04;
import java.util.Scanner;
public class Test32 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// *switch 문제 *
// 문제 1. 정수를 입력받아 3~5는 "봄" 6~8은 "여름",
// 9~ 11은 "가을", 12 ~2는 "겨울" 을 출력하세요.
/*
System.out.println("정수를 입력하세요");
Scanner sc = new Scanner(System.in);
int season = sc.nextInt();
switch(season/3) {
case 1 :
System.out.println("봄");
break;
case 2 :
System.out.println("여름");
break;
case 3 :
System.out.println("가을");
break;
case 4 :
System.out.println("가을");
break;
*/
// 문제 2. 점수를 입력받고 90~ 100은 "수", 80~ 89는 "우"
// 70 ~ 79는 " 미" 60 ~ 69 "양", 그 이하는 "가"를 출력하세요.
/*
70~79 -> "미"
String str = "A"
switch(str) {
case "미" :
System.out.println("AAA");
break;
case "B" :
System.out.println("BBB");
break;
case "C" :
System.out.println("CCC");
break;
System.out.println("정수를 입력하세요") ;
Scanner sc1 = new Scanner(System.in);
int score = sc1.nextInt();
switch (score/10) {
case : 10 , case 9 :
System.out.println("수");
break;
case : 8
System.out.println("우");
break;
}
*/
// 문제 3. 덧셈 +, 뺄셈 -, 곱셈 *, 나눗셈/ 중 원하는 기호를 선택하여
// a, b의 연산 결과값을 출력해보세요.
System.out.println("정수를 입력하세요") ;
Scanner sc1 = new Scanner(System.in);
String op = sc1.nextLine();
int a = 10; int b= 5;
switch(op) {
case "+" :
System.out.println(a + b);
break;
case "-" :
System.out.println(a - b);
case "*" :
System.out.println(a * b);
case "/" :
System.out.println(a / b);
dafault :
System.out.println("사칙연산이 아닙니다");
}
}
}
package day04;
import java.util.Scanner;
public class Test33 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
*
#1. 반복의 횟수를 알때
변수 = 초기값;
while(조건식){
// 반복해서 실행할 명령문 작성
증감식;
}
#2. 무한반복 : 반복횟수가 달라질때
while(true){
반복해서 실행할 명령문.....
if(조건){break;} //종료시점이 반드시 필요함!!!
}
*/
int a = 0; // 초기식
while(a<=4) {
// 반복할 명령어
System.out.println("안녕하세요" + a);
a++; // 증감식
}
// 0 ~ 5 출력
int n = 0;
while (n <=5) {
System.out.println(n);
n++;
}
}
}
package day04;
import java.util.Scanner;
public class Test34 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
#1. 반복의 횟수를 알때
변수 = 초기값;
while(조건식){
// 반복해서 실행할 명령문 작성
증감식;
}
#2. 무한반복 : 반복횟수가 달라질때
while(true){
반복해서 실행할 명령문.....
if(조건){break;} //종료시점이 반드시 필요함!!!
}
*/
//while 무한반복
//숫자 0을 입력받을때 까지 계속 정수를 입력받아 출력하세요.
//
Scanner sc = new Scanner(System.in);
System.out.println("숫자입력");
while(true) {
int num = Integer.parseInt(sc.nextLine());
if(num==0) {
System.out.println("종료");
break;
}
}
}
}
package day04;
import java.util.Scanner;
public class Test35 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//문제 1. 0~ 10 까지 출력해보세요
/*
int a = 0;
while(a<11) {
System.out.println(a);
a++;
}
//문제 2. 1~ 15 까지 출력해보세요
int b = 1;
while(b<=15) {
System.out.println(b);
b++;
}
//문제 3. 0~ 100 까지 10단위로 출력해보세요
int c = 1;
while(c<=10) {
System.out.println(c*10);
c++;
int c = 0;
while(c<=100) {
System.out.println(c);
c+= 10;
}
/*
#2. 무한반복 : 반복횟수가 달라질때
while(true){
반복해서 실행할 명령문.....
if(조건){break;} //종료시점이 반드시 필요함!!!
}
//문제 4. 1~ 20 까지 홀수만 출력해보세요
int d = 1;
while(d<=10) {
System.out.println(d*2-1);
d++;
}
int d = 1;
while(d<=20) {
if(d%2==1){
System.out.println(d);
}
d++;
}
*/
//문제 5. 1~ 10 까지 총합을 출력해보세요
// 1 2 3 4 5 6 7 8 9 10
/*
int sum = 0;
int i = 1;
while (i<=10) {
sum =sum + i; // (sum += i;)
i++;
}
System.out.println(sum);
}
*/
//문제 6. 1~ 50 까지 짝수의 합 출력해보세요
/*
int tot = 0;
int i = 1 ;
while (i<=25) {
tot =(tot + (i*2));
i++;
}
System.out.println(tot);
*/
/*
int i = 0;
int tot = 0;
while(i <= 50) {
if(i % 2 == 0) {
tot += i;
}
i++;
}
System.out.println(tot);
*/
// 주문 프로그램
// 1.아메리카노 2500/
// 2. 카페라떼 3000/
// 3. 카푸치노 3500/
// 4. 카라멜마끼아또 4000/
// 5. 샌드위치 6000/
// 6. 종료
// 1. 단계 위 메뉴를 출력하고, 번호로 주문을 받는다.
// 주문 종료를 선택할때까지 계속 주문을 받고
// 주문 받은 모든 메뉴의 총 금액을 출력한 후 종료
// 2단계 : int money = 20000; (내돈).
// 주문시, 내 돈에서 주문한 금액 차감, 돈이 부족하면 주문 못하게,
// 주문 종료시 주문한 총 금액과 내 돈의 잔액까지 출력.
System.out.println
("1."+ "아메리카노 2500"+"\n" +
"2."+ "카페라떼 3000 "+"\n" +
"3."+ "카푸치노 3500 "+"\n" +
"4."+ "카라멜마끼아또 4000"+"\n" +
"5."+ "샌드위치 6000" +"\n" +
"6."+ " 주문종료");
Scanner sc = new Scanner(System.in);
int tot = 0; // 주문 총금액
int money = 20000;
while(true) {
System.out.println("주문 번호를 입력하세요");
int num = sc.nextInt();
if(num == 1) {
System.out.println("아메리카노를 주문하셨습니다" ); tot += 2500;
}else if(num == 2) {
System.out.println("카페라떼를 주문하셨습니다" ); tot += 3000;
}else if(num == 3) {
System.out.println("카푸치느를 주문하셨습니다" ); tot += 3500;
}else if(num == 4) {
System.out.println("카라멜 마끼아또를 주문하셨습니다" ); tot += 4000;
}else if(num == 5) {
System.out.println("샌드위치를 주문하셨습니다" ); tot += 6000;
}else if(num == 6) {
System.out.println("총 금액은"+ tot + " 입니다");
break;
}else //if(num == 0 || num >6)
{
System.out.println("잘못입력하셨습니다");
}
if(money-tot<0) {
System.out.println("잔액이 부족합니다");
}
System.out.println("남은 잔액은" + (money - tot) + "입니다");
}
/*
#2. 무한반복 : 반복횟수가 달라질때
while(true){
반복해서 실행할 명령문.....
if(조건){break;} //종료시점이 반드시 필요함!!!
}
sc.close();
*/
}
}
package day04;
public class Test36 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num = 0; // 초기식
do {
System.out.println("hello");
num++; //증감식
}while(num <1); //조건식
}
}
package day04;
public class Test37 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//5번 반복
// for (int i= 0; i < 5 ; i++ ) {
// System.out.println("hello");
//0~10까지 출력
// for (int i = 0; i<=10; i++) {
// System.out.println(i);
// }
// #1. for문 안에서 만들어진 i 변수는 밖에서 사용 불가
//System.out.println(i); for문 안에서만 i 동작함 -> i는 지역변수
// #2. i를 밖에서도 사용하고 싶으면 밖에 선언하고 사용
// int i = 0 ;
// #3. 초기값 생략 : 밖에서 먼저 만들어놓은 변수라면 for문 안에서 초기식 생략가능 *단 반드시 세미콜론은 작성
// for (//(int i = 0); i < 10 ; i++ ){}
// #4. 무한반복
// for ( ; ; ){} == while(true) 가독성 면에서 무한반복은 while을 더 많이씀 for은 쓰다만 느낌
// break, continue
for (int a = 0; a < 10 ; a++) {
if(a ==5) {
//break; //강제종료 -> 반복문 종료
continue; // 다음 동작으로 건너뜀 -> 아래 출력안하고, 증감식으로 가버림
}
System.out.println(a);
}
}
}
package day04;
import java.util.Scanner;
public class Test38 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//1. 10- 30 까지 출력
//2. 10 - 100까지 10단위 출력
//3. 1 - 20 짝수만 출력
//4. 1- 100까지 홀수의 총합 출력
//5. 정수 1개를 입력받고, 1부터 입력받은 수까지의 합 출력
/*
for (int i = 10 ; i <= 30 ; i++ ) {
System.out.println(i);
}
//2번
for (int i = 0; i<= 100 ; i +=10) {
System.out.println(i);
}
//3번
for (int k = 0; k<= 20 ; k ++) {
if (k%2==0) {
System.out.println(k);
}
}
//4번
int tot = 0;
for(int i = 0; i<=100 ; i++) {
if(i%2==1) {
tot += i;
}
}
System.out.println("홀수의 합은 : " + tot);
*/
/*
//5. 정수 1개를 입력받고, 1부터 입력받은 수까지의 합 출력
Scanner sc = new Scanner(System.in);
int i = 0;
System.out.println("정수를 입력하세요>");
int num = sc.nextInt();
int tot = 0;
for(; i <= num; i++) {
tot += i;
}
System.out.println(tot);
*/
/*
Scanner sc = new Scanner(System.in);
System.out.println("정수를 입력하세요>");
int i = sc.nextInt();
int tot = 0;
for( ;0< i ; i-- ) {
tot += i;
}
System.out.println(tot);
*/
// 0을 입력할때 까지 입력받고, 입력받은 모든 총합을 마지막에 출력하세요.
Scanner sc = new Scanner(System.in);
System.out.println("정수를 입력하세요>");
int tot = 0;
for(; ; ) {
int num = sc.nextInt();
if(num==0) {
break;
}
tot+= num;
System.out.println(tot);
}
}
}
'P-Language > [Java]' 카테고리의 다른 글
[Java] 6 - 다차원 배열 (0) | 2022.06.03 |
---|---|
[Java] 5 - 배열 (0) | 2022.06.03 |
[Java] 3 - 연산자, 제어문, 조건문 (0) | 2022.06.03 |
[Java] 2 - 변수와 입,출력문 (0) | 2022.06.03 |
[Java] 1 - 환경 변수와 자바의 기본 (0) | 2022.06.03 |