TIL 2022-09-16 Switch/While

JYR00·2022년 9월 16일
0

TIL

목록 보기
8/60

Switch break

Scanner scan = new Scanner(System.in);
        System.out.println("1-7까지의 숫자를 입력하세요");
        int currDay = scan.nextInt();

        System.out.println("변수 currDay의 값: " + currDay);
        switch (currDay) {
            case 1:
                System.out.println("오늘은 일요일입니다");
                break;

            case 2:
                System.out.println("오늘은 월요일입니다");
                break;

            case 3:
                System.out.println("오늘은 화요일입니다");
//                break;

            case 4:
                System.out.println("오늘은 수요일입니다");
                break;

            case 5:
                System.out.println("오늘은 목요일입니다");
                break;

            case 6:
                System.out.println("오늘은 금요일입니다");
                break;

            case 7 :
                System.out.println("오늘은 토요일입니다");
                break;

//            default:
//                System.out.println("오늘은 주말입니다");
//                값이 없는 경우 디폴트값이 출력된다.        }
        }
    }
}


break가 없으면 만날 때 까지 진행된다.

        Scanner scan = new Scanner(System.in);
        System.out.println("1-7까지의 숫자를 입력하세요");
        int currDay = scan.nextInt();

        System.out.println("변수 currDay의 값: " + currDay);
        switch (currDay) {
            case 1:
                System.out.println("오늘은 일요일입니다");
                break;

            case 2:
                System.out.println("오늘은 월요일입니다");
                break;

            case 3:
                System.out.println("오늘은 화요일입니다");
//                break;

            case 4:
                System.out.println("오늘은 수요일입니다");
//                break;

            case 5:
                System.out.println("오늘은 목요일입니다");
//                break;

            case 6:
                System.out.println("오늘은 금요일입니다");
//                break;

            case 7 :
                System.out.println("오늘은 토요일입니다");
//                break;

//            default:
//                System.out.println("오늘은 주말입니다");
//                값이 없는 경우 디폴트값이 출력된다.        }
        }
    }
}

단순 if문

private static Scanner scan;
    public static void main(String[]args){
        scan = new Scanner(System.in);
 System.out.println("숫자를 입력하세요: ");
          int n = scan.nextInt();

          if (n%2==0){
              System.out.println("입력한 숫자는 짝수입니다");
          }
        System.out.println("입력한 숫자는 "+n+"입니다.");
         }
        System.out.println("입력한 숫자는 "+n+"입니다.");
        }

if else문

 System.out.println("숫자를 입력하세요: ");
          int n = scan.nextInt();

          if (n%2==0){
              System.out.println("입력한 숫자는 짝수입니다");
          }
          System.out.println("입력한 숫자는 "+n+"입니다.");

//        if~else문: 조건식의 결과가 참일경우 바로 아래의 코드블럭을 실행하고 거짓일 경우, else 아래의 코드블럭을 실행하는 형태
            System.out.println("탕수육 먹는 방법을 입력하세요");
            System.out.println("찍먹? 부먹? :");
            String input = scan.next(); //문자열로 키보드 입력받음.
//          input equals(문자열): 지정한 문자열과 동일한 문자열인지 확인, true / false 로 출력
            if (input.equals("부먹")){
                System.out.println("탕수육의 원래 형태는 부먹입니다.");
            } else {
                System.out.println("찍먹을 해야 탕수육의 튀김옷이 바삭합니다");
            }
            System.out.println("탕수육을 맛있게 먹습니다.");



다중 else if 문

System.out.println("점수를 입력해주세요 : ");
          int grade = scan.nextInt();

          if (grade >=90){
              System.out.println("당신의 점수는 "+grade+"점이고 당신의 등급은 A 입니다.");
          } else if (grade>=80) {
              System.out.println("당신의 점수는 "+grade+"점이고 당신의 등급은 B 입니다.");
          }  else if (grade>=70) {
              System.out.println("당신의 점수는 "+grade+"점이고 당신의 등급은 C 입니다.");
          }  else if (grade>=60) {
              System.out.println("당신의 점수는 "+grade+"점이고 당신의 등급은 D 입니다.");
          }   else {
              System.out.println("당신의 점수는 "+grade+"점이고 당신의 등급은 F 입니다.");
          }

    }






else는 안하는 경우

//        마지막에 존재하는 ELSE문은 생략가능. (ELSE 구문으로 갈 수 없도록 모든 조건을 다 입력했을 경우, else문으로 빠지는 경우에 그냥
//        아무런 처리를 하지 않을 경우)
        System.out.println("점수를 입력해주세요 : ");
        int grade = scan.nextInt();

        if (grade >= 90) {
            System.out.println("당신의 점수는 " + grade + "점이고 당신의 등급은 A 입니다.");
        } else if (grade >= 70) {
            System.out.println("당신의 점수는 " + grade + "점이고 당신의 등급은 C 입니다.");
        } else if (grade >= 80) {
            System.out.println("당신의 점수는 " + grade + "점이고 당신의 등급은 B 입니다.");
        } else if (grade >= 60) {
            System.out.println("당신의 점수는 " + grade + "점이고 당신의 등급은 D 입니다.");
        } else if (grade < 60) {
            System.out.println("당신의 점수는 " + grade + "점이고 당신의 등급은 F 입니다.");
        }
    }



중첩 if문

System.out.println("\n====중첩 if문=====\n");
//        중첩 if문 : if, if~else, else if문의 코드블럭에 if문을 사용하는 방식

        System.out.println("점수를 입력하세요: ");
        int grade = scan.nextInt();

        if (grade >= 90) {
            System.out.println("당신의 점수는 " + grade + "점이고 등급은 A입니다.");
        } else {
            if (grade >= 80) {
                System.out.println("당신의 점수는 " + grade + "점이고 등급은 B입니다.");
            } else {
                if (grade >= 70) {
                    System.out.println("당신의 점수는 " + grade + "점이고 등급은 c입니다.");
                } else {
                    if (grade >= 60) {
                        System.out.println("당신의 점수는 " + grade + "점이고 등급은 d입니다.");
                    } else {
                        System.out.println("당신의 점수는 " + grade + "점이고 등급은 f입니다.");
                    }
                }
            }
        }
    }

클래스명 수정방법




문제 1

import java.util.Scanner;
public class Question {
    public static void main(String[] args) {
//        문제 1 ) 점수를 입력받아 점수 및 등급을 출력하는 프로그램을 작성하시오.
//        else if문을 사용하여 작성
//        A+ >=95 A :>=90 B+ :>=85 B>=80 C+:>=75 C:>=70 D :>= 60 F: 60미만
//        중첩 if문을 사용하여 각각의 + 대의 점수를 출력
        Scanner scanner = new Scanner(System.in);

        System.out.println("점수를 입력하세요 : ");
        int score = scanner.nextInt();
        if (score >= 90) {
            if (score >= 95) {
                System.out.println("학점은" + score + "이며 A+입니다.");
            } else {
                System.out.println("학점은" + score + "이며 A 입니다.");
            }
        } 
        else if (score > 80) {
            if (score >= 85) {
                System.out.println("학점은" + score + "이며 B+입니다.");
            } else {
                System.out.println("학점은" + score + "이며 B 입니다.");
            }
        }
        else if (score > 70) {
            if (score >= 75) {
                        System.out.println("학점은" + score + "이며 C+입니다.");
                    } else {
                        System.out.println("학점은" + score + "이며 C 입니다.");
                    }
                }
        else if (score >= 60) {
                    if (score >= 65) {
                        System.out.println("학점은" + score + "이며 D+입니다.");
                    } else {
                        System.out.println("학점은" + score + "이며 D 입니다.");
                    }
                }
        else if (score < 60) {
                    System.out.println("학점은" + score + "이며 F입니다.");
                }
            }
        }

반복문

while문

public class While {
    public static void main(String[]args){
        System.out.println("\n-------while문-----\n");

        int hit = 0;

        while (hit<10){
            hit++;
            System.out.println("나무를 "+hit+"번 찍었습니다.");

            if (hit==10){
                System.out.println("나무가 넘어갑니다.");
            }
        }
    }
}


while 사용 시 주의점

  1. 초기화 변수의 카운트 위치에 따라 결과가 달라짐.
    1.1 프로그래밍 익숙하지 않은 경우 변수의 카운트 부분을 고정해서 사용하는게 좋음.(카운트변수를 맨 처음 혹은 맨 마지막)
    선생님 추천은 맨마지막 줄에 넣는 것.
    1.2 while문을 탈출할 수 있는 조건을 반드시 명시해야 한다.(그렇지않으면 무한루프에 빠질 수 있다.)
    1.3 break문을 사용하여 탈출

문제

2)while문을 사용하여 1~10까지 화면에 출력하는 프로그램 작성하세요

int count = 0;
//        while (count < 10) {
//            System.out.print(" " + count);
//            count++;

3) while사용하여 1~10 더하는 프로그램 작성하시오.

int count = 0;
//        int total = 0;
//        while (count < 11) {
//            total = total + count;
//            System.out.println("count" + count + "\ntotal :" + total);
//            count++;

4)while문을 사용하여 지정한 단수의 구구단을 출력하세요

System.out.println("보고싶은 단을 치시오");
        int dan = scanner.nextInt();
        int count = 1;

        while(count<10){
            System.out.println(dan+"*"+count+"="+(dan*count));
            count++;
        }

다중 while문

int i = 0;
//        int j = 0;

        while(i<5){
            int j = 0;

            while(j<5){
                System.out.println("i : "+i+"\tj :"+j);
                j++;
            }
            i++;
            j=0;
        }

문제 5)while문을 사용하여 2~9단 구구단 모두 출력하는 프로그램 만들어라

i=2;
       while(i<10){
           System.out.println("----"+i+"단------");
           int j = 1;
           while (j<10){
               System.out.println(i+"*"+j+"="+(i*j));
               j++;
           }
           i++;
       }
       

while vs do-while

//       do while: 기본적으로 while문과 동일한 반복문, 무조건 1번은 실행되는 while문
//        반복조건을 마지막에 확인한다.
        System.out.println("\n------일반 while문------\n");
//      일반 while은 조건먼저확인한다.
        int c1 = 5;
        while (c1<5){
            System.out.println(c1);
            c1++;
        }
        System.out.println("\n------do while문------\n");
//      do while은 일단 먼저 실행하고 조건을 확인하다.
        int c2 =0;
        do{
            System.out.println(c2);
            c2++;
        } while(c2<5);

0개의 댓글