자바 - 연습문제2

빵제이·2023년 7월 24일
0

자바 연습문제

목록 보기
2/10

[ 1번 ]

 public static void ex01() {
    
//점수에 따른 학점(if문)
    int score = 100;
    char grade;  // 'A', 'B', 'C', 'D', 'F'    (한 글자만 저장할 수 있는 char 타입을 썼음).
    if(score >= 90 ) {
        grade = 'A';
    }
      else if(score >= 80) {
        grade = 'B';
      }
      else if(score >= 70) {
        grade = 'C';
      }
      else if(score >= 60) {
        grade = 'D';
      }
      else {
        grade = 'F';
      }
      System.out.println(score + "점은 " + grade+ "학점입니다.");
  }

[ 2번 ]

public static void ex02() {

//점수에 따른 학점(switch문)
  int score = 100;
  char grade;  // 'A', 'B', 'C', 'D', 'F'    (한 글자만 저장할 수 있는 char 타입을 썼음).
  switch(score / 10) {
    case 10:        // 100점과 90점은 학점이 같기 때문에 같이 둔다.
    case 9:
      grade = 'A';
      break;
    case 8:
      grade = 'B';
      break;
    case 7:
      grade = 'C';
      break;
    case 6:
      grade = 'D';
      break;
    default:
      grade = 'F';
  }
  System.out.println("당신의 점수는 " + score + "점, 학점은 " + grade + "입니다." );
}

[ 3번 ]

public static void ex03() {

//점수와 학년에 따른 학점
    //1~3학년 : 60점 이상 합격, 아니면 불합격
    //4~6학년 : 70점 이상 합격, 아니면 불합격
    int score = 100; // 점수
    int scYear = 1;  // 학년
    String pass;  // "합격", "불합격"
    
if(scYear >= 1 && scYear <= 3) {
        if(score >= 60) {
        pass = "합격";
      } else {
        pass = "불합격";
      }
    } else {
        if(score >= 70) {
          pass = "합격";
        } else {
          pass = "불합격";
        }
    }
    System.out.println(scYear + "학년이고, 점수는 " + score + "입니다. 따라서" + pass + "입니다." );
    
  }

[ 3-2번 ]

public static void ex03_2( ) {
   
//위와 같은 문제(다른방법으로 풀기)
   //점수와 학년에 따른 학점
   //1~3학년 : 60점 이상 합격, 아니면 불합격
   //4~6학년 : 70점 이상 합격, 아니면 불합격
   int score = 60; // 점수
   int scYear = 4;  // 학년
   String pass;  // "합격", "불합격"
   int passScore;      // 합격의 최소 점수
   
if(scYear <= 3) {
     passScore = 60;
   } else {
     passScore = 70;
   }
   if(score >= passScore) {
     pass = "합격";
   } else {
     pass = "불합격";
   }
   System.out.println(pass);
 }

[ 4번 ]

public static void ex04() {
   
 //메뉴에 따른 가격
   //아메리카노 : 2000
   //카페라떼 : 2500
   //밀크티 : 3000
   //기타 : 5000
   String order = "아메리카노";  //문자열은 기본적으로 참조타입이어서 주소값을 가지고 있음.
   int price;                    //if는 문자열의 비교는 못한다.
   
  switch(order) {
    case "아메리카노":          //case에 숫자 외에도 문자도 입력가능.
     price = 2000;
     break;
    case "카페라떼":
     price = 2500;
     break;
    case "밀크티":
     price = 3000;
     break;
    default:
     price = 5000;
  
}
   System.out.println(order + "의 가격은 " + price + "입니다.");
 }

[ 5번 ]

public static void ex05() {
  
//월에 따른 계절      월 % 12
  //3 ~ 5 : 봄         3 ~ 5
  //6 ~ 8 : 여름       6 ~ 8
  //9 ~ 11: 가을       9 ~ 11
  //12 ~ 2: 겨울       0 ~ 2
  int month = 7;
  String season;  // "봄", "여름", "가을", "겨울"
  
if(month >= 3 && month <= 5) {
    season = "봄";
  } else if(month >= 6 && month <= 8) {
    season = "여름";
  } else if(month >= 9 && month <= 11) {
    season = "가을";
  } else {
    season = "겨울";
  }
  System.out.println(month + "월은 " + season + "입니다.");
}

[ 5-2번 ]

public static void ex05_2() {
  
(위와 같은 문제, 다른 방식)
  //월에 따른 계절      월 % 12
    //3 ~ 5 : 봄         3 ~ 5
    //6 ~ 8 : 여름       6 ~ 8
    //9 ~ 11: 가을       9 ~ 11
    //12 ~ 2: 겨울       0 ~ 2
    int month = 7;
    int mod = month % 12; // 월 % 12
    String season;  // "봄", "여름", "가을", "겨울"
    
if(mod <= 2) {
      season = "겨울";
    } else if(month <= 5) {
      season = "봄";
    } else if(month <= 8) {
      season = "여름";
    } else {
      season = "겨울";
    }
    System.out.println(month + "월은 " + season + "입니다.");
  }

[ 6번 ]

public static void ex06() {
  
//월에 따른 분기
  //1 ~ 3 : 1분기
  //4 ~ 6 : 2분기
  //7 ~ 9 : 3분기
  //10 ~ 12 : 4분기
  int month = 7;
  
if(month <= 3) {
    System.out.println("1분기");
  } else if(month <= 6) {
    System.out.println("2분기");
  } else if(month <= 9) {
    System.out.println("3분기");
  } else if(month <= 12) {
    System.out.println("4분기");
  }
  System.out.println(month);
  }

[ 6-2번 ]

public static void ex06_2() {
      
//(위와 같은 문제, 다른 방법)
      //월에 따른 분기           분기 계산
        //1 ~ 3 : 1분기         (month -1) / 3 + 1
        //4 ~ 6 : 2분기
        //7 ~ 9 : 3분기
        //10 ~ 12 : 4분기
        int month = 11;
        System.out.println((month -1) / 3 + 1 + "분기");
       
  }

[ 7번 ]

public static void ex07() {
   
 //10일 후 요일은?
   int day = 13;  // 13일은 목요일
   int nDay = 10;  // 10일
   String weekname;  // "월", "화", "수", "목", "금", "토", "일"
   switch((day += nDay) % 7) {   //day = day + nDay
     case 0: weekname = "금요일"; break;
     case 1: weekname = "토요일"; break;
     case 2: weekname = "일요일"; break;
     case 3: weekname = "월요일"; break;
     case 4: weekname = "화요일"; break;
     case 5: weekname = "수요일"; break;
     default: weekname = "목요일";
   }
   System.out.println(day + "일은 " + weekname + "입니다.");
   //스위치 없이 배열로 더 간단하게 할 수 있다.
 }

[ 8번 ]

public static void ex08() {
   //대소문자 변환 (구글링으로 아스키코드 검색 후 참고)  = 아스키코드 : 아메리칸 스탠다드 코드
   char ch = 'p';  //임의의 대문자 또는 소문자    //아스키코드 A = 65 , a = 97  || A ~ Z = 65 ~ 90 , a ~ z = 97 ~ 122
    //각 아스키코드에 해당하는 숫자만큼 빼거나 더하면 소문자,대문자 자유롭게 변경 가능
   if(ch >= 'A' && ch <= 'Z') {     //숫자 대신 문자를 넣어줘도 쉽게 가능.
     ch += 32;
   } else if(ch >= 'a' && ch <= 'z') {
     ch -=32;
   }
   System.out.println(ch);
 }

[ 8-2번 ]

public static void ex08_2() {
  
//위와 같은 문제, 다른 방법
  //대소문자 변환 (구글링으로 아스키코드 검색 후 참고)  = 아스키코드 : 아메리칸 스탠다드 코드
  char ch = 'a';  //임의의 대문자 또는 소문자    //아스키코드 A = 65 , a = 97  || A ~ Z = 65 ~ 90 , a ~ z = 97 ~ 122
   
if(ch >= 65 && ch <= 90) {     
    ch += 32;
  } else if(ch >= 97 && ch <= 122) {
    ch -=32;
  }
  System.out.println(ch);
}

public static void main(String[] args) {
//ex01();
//ex02();
//ex03();
//ex03_2();
//ex04();
//ex05();
//ex06_2();
//ex07();
//ex08();
  ex08_2();
}
profile
개인 아카이브

0개의 댓글