java程流程控制--分支结构switch-case

1.switch-case

switch(;表达式){
 case 常量1:
        执行语句1;
        break;(根据实际情况添加)
 case 常量2;
        执行语句2;
        break;(根据实际情况添加)
        default;
        breat;


}

说明:
1)根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构末尾结束为止。
2)break ,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构
3)switch结构中的表达式,只能是如下的6种数据类型之一:byte、short、int、char、枚举类型(jdk1.5新增)、String类型(jdk1.7新增)
4)case只能声明常量,不能声明范围。
5)break关键字是可选
6)default关键字相当于if-else中的else,default是可选,位置是灵活的

 class SwitchCase{
     public static void main(String[] args){
            int number=2;
switch(number){
  case 0:
   System.out.print("zero");
  case 1:
   System.out.print("one");
case 2:
   System.out.print("two");
case 3:
   System.out.print("three");
default:
  System.out.print("default");


}


}





}

在这里插入图片描述

 class SwitchCase{
     public static void main(String[] args){
            int number=1;
switch(number){
  case 0:
   System.out.print("zero");
   break;
  case 1:
   System.out.print("one");
   break;
case 2:
   System.out.print("two");
   break;
case 3:
   System.out.print("three");
break;
default:
  System.out.print("default");
break;


}


}





}

在这里插入图片描述

2.练习

1.使用switch-case把小写类型的char转换为大小写。只转换a,b,c,d,e, 其他的输出other

提示:String wold=scan.next():
char c=word.charAt(0);
switch©{

}
小写比大写多32

import java.util.Scanner;
public class  SwitchTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入a~e的小写字母:");
        String word= sc.next();
        char c= word.charAt(0);//读取第1个字符并强制转换为char类型
        switch(c){
            case 'a':
                System.out.println(c -= 32);
                break;
            case 'b':
                System.out.println(c -= 32);
                break;
            case 'c':
                System.out.println(c -= 32);
                break;
            case 'd':
                System.out.println(c  -= 32);
                break;
            case 'e':
                System.out.println(c -= 32);
                break;
            default:
                System.out.println("other");
        }
        }
    }

注意:1) 读取第一个字符转换为char类型 char c=word.charAt(0);
2) 小写比大写多32

2.对学生成绩大于60分的,输出”合格“,低于60分的,输出“不合格”

import java.util.Scanner;//
class TestSwsitch2{
    public static void main(String[] args){
    Scanner s = new Scanner(System.in);//
    System.out.println("请输入您的成绩");//
    int score= s.nextInt();
  
    switch(score/10){
       case 0:  
       System.out.println("不及格");
        case 1:
        System.out.println("不及格");
        break;
          case 2:
        System.out.println("不及格");
          case 3:
    System.out.println("不及格");
          case 4:
       System.out.println("不及格");
          case 5:
      System.out.println("不及格");
          case 6:
        System.out.println("及格");
          case 7:
    System.out.println("及格");
          case 8:
        System.out.println("及格");
          case 9:
        System.out.println("及格");
          case 10:
        System.out.println("及格");
        break;
        default:
        System.out.println("输入有误");
        break;
    }
    }
}
import java.util.Scanner;//
class TestSwsitch2{
    public static void main(String[] args){
    Scanner s = new Scanner(System.in);//
    System.out.println("请输入您的成绩");//
    int score= s.nextInt();
  
    switch(score/60){
        case 0:
        System.out.println("不及格");
        break;
        case 1System.out.println("及格");
        break;
        default:
        System.out.println("输入有误");
        break;
    }
    }
}

考虑:分数除以10,60后case的分类

3.根据用于指定月份,打印该月份所属的季节,3,4,5春季6,7,8夏季,9,10,11秋季,12,1,2冬季

import java.util.Scanner; 
public class TestSwsitch3{
    public static void main(String[] args){
       Scanner sc = new Scanner(System.in);
        System.out.print("请输入月份:")int month = sc.nextInt();
                switch(month){
                    case 3 : 
                    case 4 : 
                    case 5 :
                        System.out.println(month + "月为春季");
                    break;
                    case 6 : 
                    case 7 : 
                    case 8 :
                        System.out.println(month + "月为夏季");
                    break;
                    case 9 : 
                    case 10 : 
                    case 11 :
                        System.out.println(month + "月为秋季");
                    break;
                    case 12 :
                    case 1 : 
                    case 2 :
                        System.out.println(month + "月为冬季");
                    break;
                    default :
                        System.out.println("输入月份错误!");

                }

}

}

4.编写程序,从键盘上输入2019年的“month”和day,要求通过程序输出输入的日期为2019年的第几天

import java.util.Scanner;
class SwitchTest02{
    public static void main(String[] args){
         Scanner sc=  new Scanner(System.in);
          System.out.println("请输入2019的月:");
        int month = sc.nextInt();
          System.out.println("请输入日:");
        int day = sc.nextInt();

        int sumDays = 0;
         
        switch (month){
            case 12: 
        sumDays += 30;
            case 11: 
        sumDays +=31;
            case 10:
         sumDays += 30;
            case 9:
         sumDays += 31;
            case 8:
         sumDays += 31;
            case 7:
          sumDays += 30;
            case 6:
          sumDays += 31;
            case 5:
          sumDays += 30;
            case 4:
          sumDays += 31;
          case 3:
              sumDays += 28;
            case 2:
             sumDays += 31;
            case 1:
          sumDays += day;

}
    system.out.print("2019年"+month+"月"+day+"日是当年的"+sumDays+"天");
        }
}

考虑:
case中的break关键字是可选,此处的逻辑思路是12月份倒着写

5.从键盘上分别输入年、月、日,判断这一天是当年的第几天

注:判断一年是否是闰年的标准
1)可以被4整除,但不可以被100整除或
2)可以被400整除

import java.util.Scanner;
class SwitchTest03{
    public static void main(String[] args){
           Scanner sc=  new Scanner(System.in);
          
         System.out.println("请输入年:");
           int year = sc.nextInt();
         
         System.out.println("请输入月:");
           int month = sc.nextInt();
         
          System.out.println("请输入日:");
           int day = sc.nextInt();

      
                 int sumDays = 0;
         
        switch (month){
            case 12: 
        sumDays += 30;
            case 11: 
        sumDays +=31;
            case 10:
         sumDays += 30;
            case 9:
         sumDays += 31;
            case 8:
         sumDays += 31;
            case 7:
          sumDays += 30;
            case 6:
          sumDays += 31;
            case 5:
          sumDays += 30;
            case 4:
          sumDays += 31;
          case 3:
            if((year%4==0&&year%100!=0)||year%400==0){
          sumDays+=29;
            
        
        }else{
          sumDays+=28;
            
}
            case 2:
             sumDays += 31;
            case 1:
          sumDays += day;

}
System.out.print(year+"年"+month+"月"+day+"日是当年的"+sumDays+"天");

   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值