java分支语句

java的执行语句

分类:
1.顺序语句:方法中的代码从上往下执行
2.分支语句:根据不同的条件,执行不同的功能
2.1 if分支
2.2 switch分支
3.循环语句:条件成立,就重复性的执行某个功能
3.1 for循环
3.2 while循环
3.3 do-while循环
4.特殊的流程控制语句
4.1 break
4.2 continue
4.3 return
4.4 lable

if分支

简单的if分支

1.语法结构:
if(表达式){
…代码块…
}
2.理解:表达式的结果必须是boolean类型
true - 执行代码块
false - 跳出if分支

3.做实验:

  if(false){
      System.out.println("...代码块...");
      }
  System.out.println("if分支以外的代码");	

复杂的if分支

案例一: 人类的健康值在20-25的数值内为健康
    (健康值算法为:体重(Kg/ 身高(米)的平方)
    //1.输入体重和身高
    Scanner scan = new Scanner(System.in);
    System.out.println("请输入体重(Kg):");
    double wigth = scan.nextDouble();
    System.out.println("请输入身高(M):");
    double heigth = scan.nextDouble();

    //2.计算健康值
    double health =  wigth/(heigth*heigth);

    //3.判断
    if(health>20 && health<25){
        System.out.println("医生说:\"健康,继续保持!\"");
    }
总结:
  1. if可以判断区间
  2. if可以判断复杂的条件
  3. 变量的驼峰命名法:除了第一个单词,其余的单词首字母大写

if…else…

语法结构:
    if(表达式){
        ...代码块...
    }else{
        ...else代码块...
    }
			
    理解:
        表达式的结果必须是boolean
        true - 执行代码块
        false- 执行else代码块

        例:
            if(false){
                System.out.println("...代码块...");
            }else{
                System.out.println("...else代码块...");
            }
			System.out.println("if分支以外的代码");
			
		案例:如果某同学Java考试成绩大于98分,
			 老师就奖励他一个劳斯莱斯,否则老师就罚他进行编码
			Scanner scan = new Scanner(System.in);
			System.out.println("请输入Java成绩:");
			double score = scan.nextDouble();
			
			if(score > 98){
				System.out.println("奖励该同学劳斯莱斯玩具赛车一辆");
			}else{
				System.out.println("老师给同学补课");
			}
总结:

​ 二选一的需求时考虑使用if…else…

if…else if…

语法结构:
    if(表达式1){
        ...代码块1...
    }else if(表达式2){
        ...代码块2...
    }else if(表达式n){
        ...代码块n...
    }else{
        ...else代码块...
    }

    理解:
        1.表达式的结果必须是boolean
        2.从上往下依次判断表达式,哪个表达式先为true,就执行对应的代码块
        3.所有的表达式都不为true,就执行else代码块
        
    注意:else{}根据需求可写可不写
			
    案例一:人类的健康值在
        15-20的数值内为偏瘦
        20-25的数值内为健康
        25-30的数值内为偏胖
        (健康值算法为:体重(Kg/ 身高(米)的平方)
        //输入体重、身高
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入体重(Kg):");
        double wigth = scan.nextDouble();
        System.out.println("请输入身高(M):");
        double heigth = scan.nextDouble();

        //计算健康值
        double health =  wigth/(heigth*heigth);
			
        //判断
        if(health > 15 && health<=20){
            System.out.println("小护士说:\"偏瘦,多喝啤酒、多吃垃圾食品、多熬夜\"");
        }else if(health > 20 && health <= 25){
            System.out.println("小护士说:\"健康,继续保持\"");
        }else if(health > 25 && health <= 30 ){
            System.out.println("小护士说:\"偏胖,多做体育运动\"");
        }else{
            System.out.println("小护士说:\"健康值异常,请到医院详细检查\"");
        }
总结:

多选一的需求时考虑使用if…else if…

嵌套if分支

案例:学校举行运动会,百米赛跑跑入16秒内的学生有资格进决赛,根据性别分别进入男子组和女子组。

public static void main(String[] args){
		
    Scanner scan = new Scanner(System.in);
    System.out.println("请输入成绩:");
    double score = scan.nextDouble();
		
    if(score > 0 && score < 16){
        System.out.println("请输入性别:");
        String sex = scan.next();//输入字符串
        if(sex.equals("男")){//equals:判断sex和"男"这两个字符串内容是否相等
            System.out.println("恭喜进入到男子组决赛");
        }else if(sex.equals("女")){//判断sex和"女"这两个字符串内容是否相等
            System.out.println("恭喜进入到女子组决赛");
        }else{
            System.out.println("性别异常!");
        }
    }else if(score >= 16){
        System.out.println("谢谢参与!");
    }else{
        System.out.println("成绩异常!");
    }
}

总结if:

语法的区别:
if(){}:最简单的if
if…else…: 二选一
if…else if…: 多选一
if可以无限层嵌套

应用场景:
可以判断单个值
可以判断区间
可以判断复杂的条件

switch分支

语法结构:
    switch(表达式){
        case1:
            ...代码块1...
            break;
        case2:
            ...代码块2...
            break;
        case 值n:
            ...代码块n...
            break;
        default:
            ...default代码块...
            break;
    }
			
理解:
    1.表达式的结果可以是:byteshortint、枚举(JDK1.5)String(JDK1.7)
    2.表达式分别和值1、值2、值n比较,和哪个相等,就执行对应的代码块
    3.break:跳出switch分支语句
    4.default代码块类似于else{},是其余情况的意思,根据需求可写可不写

深入switch分支

面试题:
    case的值可以相同吗?	不可以
    default可以省略吗?	可以
    break可以省略吗?	可以
    default的位置一定要在最后吗?	不一定
    case后面值的类型可以不一样吗?  可以不一样,但是必须兼容
    表达式值的类型可以是什么?	byteshortint、枚举(JDK1.5)String(JDK1.7)
			
switch表达式的类型为什么只有byteshortint、枚举(JDK1.5)String(JDK1.7)
    
	1.switch表达式的结果在底层只接受int
	2.byte自动转型成int
    3.short自动转型成int
    4.枚举的对象,系统会给它赋int5.String是获取的ASCII码
    
实例:输入年和月,输出当月的天数
    闰年:被4整除且不能被100整除 或者 被400整除的年份

	public static void main(String[] args){
		//输入年和月
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入年:");
		int year = scan.nextInt();
		System.out.println("请输入月:");
		int month = scan.nextInt();
		
		int day = 0;//当月的天数
	
		//判断
		switch(month){
			case 1:case 3:case 5:case 7:case 8:case 10:case 12:
				day = 31;
			break;
			case 4:case 6:case 9:case 11:
				day = 30;
			break;
			case 2:
				//判断是否是闰年
				if(year%4==0&&year%100!=0 || year%400==0){//闰年
					day = 29;
				}else{//平年
					day = 28;
				}
			break;
		}
	
		//输出
		System.out.println(year+"年"+month+"月的天数为:" + day + "天");
	}

if VS switch

语法结构的区别:
if的表达式:boolean
switch的表达式:byte、short、int、枚举(JDK1.5)、String(JDK1.7)

应用场景的区别:
if:判断单个值、区间、复杂的条件
switch:判断单个值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值