栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

了解分支语句

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

了解分支语句

目录

  • 一、转义字符
  • 二、常量
  • 三、if分支
  • 四、switch分支
  • 五、 f分支与switch分支的区别
  • 六、运算符的优先级

一、转义字符

含义:表示具有特殊意义的字符本身。

            n表示换行
            t表示水平制表
            "表示一个双引号
            '表示一个单引号
二、常量

含义:在程序执行过程中,不可改变的量。

(1)数字字面量:程序中出现的数字;(整数默认是int类型,小数默认是double类型)

(2)字面值常量:使用双引号括起来的内容;

(3)使用final(最终的)修饰的变量。

final int i = 100;     //使用fianl修饰的变量,变为常量,程序结束时才会被回收
System.out.println(i);
三、if分支

1.简单if分支:

 语法结构:

                if(表达式) {

                            代码块;

                }

注意:表达式的结果必须是boolean.
           true - >执行代码块 ;
           false - >跳过分支语句,执行分支以外的代码.

import java.util.Scanner;
public class Test{
    public static void main(String[] args){
        //如果麻生希的Java考试成绩大于98;麻生希就能获得一辆法拉利作为奖励
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入麻生希同学的Java成绩:");
        double score = scan.nextDouble();
        if(score>98){
            System.out.println("奖励麻生希同学法拉利玩具赛车一辆");
        }
    }
}

2.复杂的if分支:

  (1)if可以判断区间;

(2) if可以判断复杂条件。

import java.util.Scanner;
public class Test{
    public static void main(String[] args){
        //人类的健康值在20-25的数值内为健康(健康值算法为:体重(Kg) / 身高(米)的平方)
		//1.输入体重和身高
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入体重(Kg):");
		double weight = scan.nextDouble();
		System.out.println("请输入身高(M):");
		double height = scan.nextDouble();	
		//2.计算健康值
		double health = weight/(height*height);
		//3.判断
		if(health > 20 && health < 25){
			System.out.println("小护士说"健康,请保持现有状态"");
		}
    }
}​

3.if...else... :二选一的情况下使用

语法结构:

                if(表达式){
                        ...代码块...
                 }else{
                        ...else代码块...
                 }

注意:表达式的结果必须是boolean
            true -> 执行代码块
            false -> 执行else代码块

import java.util.Scanner;
public class Test{
    public static void main(String[] args){
        //如果小明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("老师给小明同学通宵补课");
		}
    }
}​

4.多重if分支:多选一时就使用

语法结构:

                if(表达式1){
                    ...代码块1...
                }else if(表达式2){
                    ...代码块2...    
                }else if(表达式n){
                    ...代码块n...                    
                }else{
                    ...else代码块...
                }

注意:从上往下依次判断表达式,哪个表达式先成立(true),就执行对应的代码块,执行完毕后跳出整个分支语句。如果都不成立,则调用else代码块;else{}根据需求可写可不写。

import java.util.Scanner;
public class Test{
    public static void main(String[] args){
       
		//1.输入成绩
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入成绩:");
		double score = scan.nextDouble();
		//2.判断成绩区间
		if(score >= 90 && score <= 100){
			System.out.println("A");
		}else if(score >= 80 && score < 90){
			System.out.println("B");
		}else if(score >= 70 && score < 80){
			System.out.println("C");
		}else if(score >= 60 && score < 70){
			System.out.println("D");
		}else if(score >= 0 && score < 60){
			System.out.println("E");
		}else{
			System.out.println("成绩异常");
		}
    }
}​

5.嵌套if:

例:学校组织运动会 - 百米赛跑,跑入14秒内同学进入到总决赛, 根据性别输出恭喜进入到男子组决赛、进入到女子组决赛。

import java.util.Scanner;
public class Test{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入比赛成绩:");
		double s = scan.nextDouble();
		if(s >= 0 && s<= 14){
			System.out.println("请输入性别:");
			String sex = scan.next();   //从控制台输入的数据是字符串类型
			if(sex.equals("男")){       //判断sex 和 "男" 这两个字符串是否相同
				System.out.println("恭喜,进入到男子组决赛...");
			}else if(sex.equals("女")){  //判断sex 和 "女" 这两个字符串是否相同
				System.out.println("恭喜,进入到女子组决赛...");
			}else{
				System.out.println("性别异常...");
			}	
		}else if(s > 14){
			System.out.println("已被淘汰,重在参与...");
		}else{        //输入的秒数为负数
			System.out.println("成绩异常...");
		}
    }
}​​
四、switch分支

语法结构:

                switch(表达式){
                    case 值1:
                        ...代码块1...
                    break;
                    case 值2:
                        ...代码块2...
                    break;
                    case 值n:
                        ...代码块n...
                    break;
                    default:
                        ...default代码块...
                    break;
                }

(1)表达式的结果:byte、short、char、int、字符串(JDK1.7)、枚举(JDK1.5);

(2) 表达式的结果分别于值1、值2、值n比较,哪个相等就执行对应的代码块;

(3)break表示跳出整个switch分支;

(4)default表示表达式的结果分别于值1、值2、值n比较,都不匹配的情况,就执行default代码块;

(5)default代码块根据需求可写可不写。

import java.util.Scanner;
public class Test{
    public static void main(String[] args){
       
		//1.输入名次
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入比赛名次:");
		String str = scan.next();
		//2.判断
		switch(str){
			case "第一名":
				System.out.println("和老师一起参加学校组织的1个月马尔代夫旅游");
			break;
			case "第二名":
				System.out.println("奖励苹果Pro笔记本电脑一部");
			break;
			case "第三名":
				System.out.println("奖励移动硬盘一个");
			break;
			default:
				System.out.println("老师晚上给小明通宵补课");
			break;
		}
    }
}​​​

问:switch的表达式为什么不能是long值?
  答:switch 对应的 JVM 字节码 lookupswitch、tableswitch 指令只支持 int 类型。
          byte、char、short 类型在编译期默认提升为 int,并使用 int 类型的字节码指令。

switch的特殊应用:

需求:输入年和月,输出当月的天数。

​import java.util.Scanner;
public class Test{
    public static void main(String[] args){
       //1.输入年和月
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入年:");
		int year = scan.nextInt();
		System.out.println("请输入月:");
		int month = scan.nextInt();
		//2.判断
		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;
		}	
		//3.输出
		System.out.println(year + "年" + month + "月当月的天数为:" + day + "天");
    }
}​​​​
五、if分支和switch分支的区别

1.表达式的区别:
        if:表达式只能是boolean;
        switch:表达式可以是byte、short、int、char、字符串、枚举。

2.应用场景的区别:

        if:判断区间、判断负责条件、二选一、多选一、嵌套

        switch: 判断单个值、二选一、 多选一、嵌套

六、运算符的优先级

不用记,学会运用小括号。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/996873.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号