控制语句-条件判断语句

前言

在还没有知道Java选择结构的时候,我们编写的程序总是从程序入口开始,顺序执行每一条语句直到执行完最后-条语句结束,但是生活中经常需要进行条件判断,根据判断结果决定是否做一件事情,这就需要选择结构。
选择结构用于判断给定的条件,然后根据判断的结果来控制程序的流程。主要的条件判断结构有:if结构和switch结构。而if结构又可以分为if单分支结构、if-else 双分支结构、if-else if-else多分支结构。

if单分支结构

语法结构:

if(布尔表达式){
	语句块
}

if语句对布尔表达式进行次判定 ,若判定为真,则执行{}中的语句块,否则跳过该语
句块。流程图如图所示。

if单选择结构流程图:
if单选择结构流程图

示例 单分支结构(掷骰子游戏)

public class Test1 {
	public static void main(String[] args) {
		//通过掷三个骰子看看今天的手气如何?
		int i = (int)(6 * Math.random() + 1://通过Math.random0产生随机数
		int j = (int)(6 * Math.random() + 1;
		int k = (int)(6 * Math.random() + 1; 
		int count=i+ j + k;
		//如果三个骰子之和大于15,则手气不错
		if(count > 15) {
			System.out.println("今天手气不错");
		}
		//如果三个骰子之和在10到15之间,则手气一般
		if(count >= 10 && count <= 15) { //错误写法: 10<=count<=15 
			System.out.println("今天手气很一般");
		}
		//如果三个骰子之和小于10,则手气不怎么样
		if(count < 10) {
			System.out.println("今天手气不怎么样");
		}
		System. outprintln("得了”+ count + "分");
	}

if else 双分支结构

语法结构:

if(布尔表达式){
	语句块1
}else{
	语句块2
}

当布尔表达式为真时,执行语句块1;否则,执行语句块2。
也就是else部分。
流程图如图所示:
在这里插入图片描述

示例if else双分支结构

public class Test2 {
	public static void main(String[] args) {
		//随机产生一个[0.0, 4.0)区间的半径,并根据半径求圆的面积和周长
		double r = 4 * Math.random();
		//Math.pow(r, 2)求半径r的平方
		double area = 3.14*r*r;
		double circle= 2 * Math.PI* r;
		System.out.println("半径为:" + r);
		System.out.println("面积为:"+ area);
		System. out.println("周长为:+ circle);
		/如果面积> =周长,则输出"面积大于等于周长",否则,输出周长大于面积
		if(area >= circle) {
			System.out.println("面积大于等于周长");
		} else {
			System. out.println("周长大于面积");
		}
	}
}

if else多选择结构

语法结构:

if(布尔表达式1) {
	语句块1;
} else if(布尔表达式2) {
	语句块2;
}	
.....
else if(布尔表达式n){
	语句块n;
} else{ 
语句块n+1;

当布尔表达式1为真时,执行语句块1;否则,判断布尔表达式2,当布尔表达式2为真时,执行语句块2 ;否则,继续判断布尔表达式… ;如果1~n个布尔表达式均判定为假时,则执行语句块n+1 ,也就是else部分。
流程图如图所示:
在这里插入图片描述

示例if else 多分支结构

public class Test5 {
	public static void main(String[] args) {
		int age = (int) (100 * Math.random());
		System.out.print("年龄是" + age +",属于"); 
		if(age < 15){
			System.out.println("儿童,喜欢玩! ");
		}else if (age < 25) {
			System.out.println("青年,要学习! ");
		} else if (age < 45){
			System.out.println("中年,要工作! ");
		}else if (age< 65) {
			System.out.println("中老年,要补钙! ");
		} else if (age< 85){
			System.out.println("老年,多运动! ");
		} else {
			System.out.println("老寿星,古来稀! ");
		}
	}
}

switch多分支结构(多值情况)

语法结构:

switch (表达式) {
	case1:
		语句序列1;
		[break]:
	case2:
		语句序列2;
		[break];
	... ...
	... ...
[default:
默认语句;]
}

switch语句会根据表达式的值从相匹配的case标签处开始执行. 一直执行到break语句处或者是switch语句的末尾。如果表达式的值与任一 case值不匹配,则进入default语句(如果存在default语句的情况)。
根据表达式值的不同可以执行许多不同的操作。switch 语句中case标签在JDK1.5之前必须是整数( long类型除外)或者枚举,不能是字符串,在JDK1.7之后允许使用字符(String)。
大家要注意,当布尔表达式是等值判断的情况,可以使用if-else if-else多分支结构或者switch结构,如果布尔表达式区间判断的情况,则只能使用if-else if-else多分支结构。

switch练习2

public class Testswitch02 {
	public static void main(string[] args){
		int month = 2;//1表示1月,2表示2月,....
		if(month==1|| month==2 || month==3){
			System.out.print1n("春季");
		}e1se if(month==4||month==5 ||month==6){
			System.out.println("夏季");
		}e1se if(month==7||month==8 ||month==9){
			System.out.println("秋季");
		}e1se{
			System.out.println("冬季");
		}
	Systes.out.println("===========使用switch改造上面的代码。switch特别适合多值判断============");
switch (month){
	case 1:
	case 2:
	case 3:
		System. out.println("春季");
		break;
	case 4:
	case 5:
	case 6:
		System.out.println("夏季");
		break; 
	case 7:
	case 8:
	case 9:
		System.out.println("秋季");
		break;
	default:
		System.out.println("冬季");
		}
	}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值