java——if、if...else...、switch分支

一、Java执行语句

分类:

  1. 顺序语句:方法中的代码从上往下执行
  2. 分支语句:根据某个条件执行某个功能
    1. if分支
    2. switch分支
  3. 循环语句:某个条件成立就重复执行某个功能
    1. for循环
    2. while循环
    3. do-while循环
  4. 特殊流程的控制语句
    1. break
    2. continue
    3. return
    4. lable

二、Java-if分支

1. 简单的if分支

import java.util.Scanner;
public class Test{
	/**
			语法结构:
				if(表达式){
					...代码块...
				}
			
			理解:
				表达式的结果必须是boolean类型
					true - 执行代码块
					false- 跳过if分支
			
			做实验:
				if(false){
					System.out.println("...代码块...");
				}
				System.out.println("if分支以外的代码");
				
			小结:
				if(表达式){}依据表达式的结果可进入,也可以不进入
	*/
	public static void main(String[] args){
		//eg:案例:如果张三的Java考试成绩大于98分,张三就能获得一辆法拉利作为奖励
				Scanner scan = new Scanner(System.in);
		
				System.out.println("请输入Java成绩:");
				double score = scan.nextDouble();
        
				if(score > 98){
					System.out.println("奖励张三法拉利玩具赛车一辆");
				}
		
	}
}

2. 复杂的if分支

import java.util.Scanner;
public class Test{
	/**
		知识点:复杂的if分支
		
		案例一: 人类的健康指数正常值在20-25的数值内为健康
			(健康值算法为:体重(Kg) / 身高(米)的平方)
			Scanner scan = new Scanner(System.in);
		
			System.out.println("请输入体重:");
			double weight = scan.nextDouble();
			System.out.println("请输入身高:");
			double height = scan.nextDouble();
			
			double health = weight/(height*height);
			
			if((health>20)&&(health<25)){
				System.out.println("健康指数达标"");
			}
			
			
		
	*/
	public static void main(String[] args){
		/**
		案例二:张三Java成绩大于98分,而且音乐成绩大于80分,老师奖励他;
				或者Java成绩等于100分,音乐成绩大于70分,老师也可以奖励他。
		*/
        Scanner scan = new Scanner(System.in);
		
			System.out.println("请输入Java成绩:");
			double javaScore = scan.nextDouble();
			System.out.println("请输入音乐成绩:");
			double musicScore = scan.nextDouble();
			
			if((javaScore > 98 && musicScore > 80)||(javaScore == 100 && musicScore > 70)){
				System.out.println("奖励张三法拉利玩具赛车一辆");
			}
		
	}
    /**
    小结:
			1.if可以判断区间
			2.if可以判断复杂条件
    */
}

3. if…else…语句

语法结构:

if(表达式){
	...代码块...
}else{
	...else代码块...
	}
/**
	理解:
		表达式的结构必须是Boolean类型
		表达式为true——执行代码块
		表达式为false——执行else代码块

eg:如果张三Java考试成绩大于98分,老师就奖励他一个劳斯莱斯,否则老师就罚他进行编码

import java.util.Scanner;
public class Test04{
	public static void main(String[] args){
		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

eg:

通过键盘录入学生成绩,如果在90-100之间,则打印“A”,否则如果在80-90之间,则打印“B”,否则如果在70-80之间,则打印“C”,否则如果在60-70之间,则打印“D”,否则如果在0-60之间,则打印“E”,否则打印“成绩异常”

import java.util.Scanner;
public class Test{		
	public static void main(String[] args){
		
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入成绩:");
				double score = scan.nextDouble();
				
				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

eg:

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

import java.util.Scanner;
public class Test06{
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		
		System.out.println("请输入成绩:");
		double score = scan.nextDouble();
			
		if(score >= 0 && score <= 12){
				
			System.out.println("请输入性别:");
			String sex = scan.next();
				
			if(sex.equals("男")){//equals比较两个字符串内容是否相同
				System.out.println("恭喜进入到男子组决赛");
			}else if(sex.equals("女")){
				System.out.println("恭喜进入到女子组决赛");
			}else{
				System.out.println("性别异常");
			}
				
		}else if(score > 12){
			System.out.println("感想参与");
		}else{//负数的情况
			System.out.println("成绩异常");
		}
		
	}
}

三、Java-switch分支

1.switch分支

语法结构:

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

理解:表达式的结果分别给值1、值2、值n比较,哪个相同就执行对应的代码块,如果都不相同就执行default代码块,default代码根据需求可写可不写

eg:

张三参加学校100比赛,如果获得第一名,将奖励现金500元;如果获得第二名,将奖励U盘一个;如果获得第三名,则奖励一个笔记本;

import java.util.Scanner;
public class Test07{
	public static void main(String[] args){
				Scanner scan = new Scanner(System.in);
		
				System.out.println("请输入比赛名次:");
				String str = scan.next();
				
				switch(str){
					case "第一名":
						System.out.println("奖励现金500元");
					break;
					case "第二名":
						System.out.println("奖励U盘一个");
					break;
					case "第三名":
						System.out.println("奖励移动硬盘一个");
					break;
					default:
						System.out.println("奖励一个笔记本");
					break;
				}	
	}
}

2.switch分支的深入

switch(表达式)–表达式值的类型可以为:

​ byte、short、int、char、枚举(JDK1.5)、字符串(JDK1.7)

switch底层判断原理:

​ switch中判断的数据类型只有int

​ byte – 自动向上转型成int

​ short – 自动向上转型成int

​ char – 获取字符的Unicode码

​ 枚举 – 获取对象在枚举中的序号

​ 字符串-- 获取字符串的hash码

eg: 输入年和月,输出当月的天数

import java.util.Scanner;
public class Test08{
	/**
		分析:
			1、3、5、7、8、10、12月 -- 31天
			4、6、9、11月 -- 30天
			2月 -- 闰年29天、平年28天
			闰年条件:年份被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 + "天");
		
	}
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值