关于 If 语句的浅析

浅析一篇关于分支选择 If 语句的理论知识,希望大家能够有所收获。

1、if 语句:

表面解释为:如果…
 根据条件选择是否执行某些代码。

语法:
	if(条件){
		任意的java代码  if 代码块
	}
	.....
//诠释的是:如果怎么样,,我就怎么样。。。

解释:
条件:必须是一个boolean 表达式。只要最终返回一个true or false 即可。
执行过程:
  1:如果布尔表达式返回true,条件成立,那么执行 if 代码块。
  2:如果布尔表达式返回false,条件不成立,那么跳过 if 后面的代码块,执行代码块后面 的java 代码。
注意:
 如果if代码块 中的代码,只有一条java 语句(只有一个分号),那么大括号可以不要。 if 控制的就是选择是否执行这一条语句。

2、if-else 流程控制。

语法:
	  if(条件){
		if 代码块
	}else{
		else 代码块	
	}

解释: 必须是一个boolean 表达式。只要最终返回一个true or false 即可。
诠释意思:如果条件成立,那么就XXXX,否则 就 *****。
执行过程:
  如果条件成立,boolean表达式返回值为 true,那么执行 if 代码块中的内容,不执行else 代码块中的内容。
  如果条件为 false,那么跳过if 代码块内容,执行 else 中的内容。
  if 代码块 和 else 代码块 只能执行其一。
注意:
  1:if 代码块 和 else 代码块 如果内容只有一句java代码,那么大括号可以省略。但是还是建议 把这对大括号添加上。
  2: else 不能单独存在的,必须和 if 配对才行。

3、if- else if - else

多分支选择:
语法:
	if(条件-1){
	if 代码块	
	}else if(条件-2){
		//if 代码块		
	}else if(条件-3){
		//if 代码块		
	}else if(条件-4){
		//if 代码块		
	}
	......else if 数量不限,最少有一个。
	else{
		//	
	}
	......

执行过程:
  1:如果 条件-1 成立,那么执行 第一个if 代码块中的内容,然后跳过后面所有的分支,执行后续的内容。
  2:如果 条件-1 不成立,跳过第一个if 代码块。然后 判断 条件-2 ,条件-2 成立,执行后面的if 代码块,不成立,再次判断下一个条件,以此类推。
  3:到最后,如果所有的条件都不成立,执行else 中的内容。
注意:
  1:最后的else 可以没有。如果有最后的else 那么该多分支选择语句,肯定会执行且仅执行某一条分支。
  2:如果最后的else 没有,那么可能一个分支都不执行,是否执行某个分支,取决于该分支对应的条件是否成立。
  3:每一个else 都要有一个和它对应的if 存在。else 的数量小于等于 if 的数量。
  4:每一个分支代码,如果只有一条语句,都可以省略大括号,不建议省略。
使用的环境:多个分支,条件互斥就可以。

4、示例

4.1 示例1

//需求:模拟一次打斗  随机产生一个人的生命值hp[50-100],然后打印。 然后才随机产生一个伤害值[30-60],暴击的概率为50%,1.5倍伤害 。
//然后将伤害值也打印
//如果出现暴击的话,要提示。然后根据此次的伤害和生命值,最后输出人是否被 over掉。如果没有over,输出最后的血量hp。
import java.util.Random;
public class TestIf3 {
	public static void main(String[] args) {
		// 定义hp值
		final int MIN_HP = 50;
		final int MAX_HP = 101;
		// 随机获取一个hp值
		int hp = (int) (Math.random() * (MAX_HP - MIN_HP) + MIN_HP);
		// 声明hp值
		System.out.println("hp = " + hp);
		// 随机伤害
		final int MIN_DAMAGE = 30;
		final int MAX_DAMAGE = 61;
		final double CRITICAL_PERCENT = 0.5;
		final double CRITICAL_DAMAGE = 1.5;
		// 定义产生的伤害
		int damage = (int) (Math.random() * (MAX_DAMAGE - MIN_DAMAGE) + MIN_DAMAGE);
		System.out.println("damage = " + damage);
		// 是否产生暴击
		Random random = new Random();
		// 是否被暴击,true 为暴击
		boolean isCritical = random.nextBoolean();
		// 条件判断是否被暴击
		// if(true == isCritical){
		if (isCritical) {// true
			// if(!isCritical){//false
			damage *= CRITICAL_DAMAGE;
			hp -= damage;
			if (hp < 0) {
				hp = 0;
			}
			System.out.println("本次伤害为暴击伤害:伤害值为:" + damage + "\t剩余血量为:" + hp);
		} else {
			hp -= damage;
			if (hp < 0) {
				hp = 0;
			}
			System.out.println("本次伤害为普通伤害:伤害值为:" + damage + "\t剩余血量为:" + hp);
		}
		// 条件判断
		if (hp == 0) {
			System.out.println("人 over 了 ,hp = " + hp);
		}
	}
}

4.2 示例2

import java.util.Scanner;

/*
 * 嵌套if语句
 * 学校举行运动会,百米赛跑跑入10秒内的学生有资格进决赛,
 * 根据性别分别进入男子组和女子组
 * 注意:
 * 	1.嵌套if语句是前三种语句的混合使用
 *  2.嵌套if语句会降低程序的可读性,能够使用三目改进,尽量使用三目改进
 */
public class TestIf2 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.print("请输入比赛成绩: ");
		double seconds = input.nextDouble();
		System.out.print("请输入性别: ");
		String gender = input.next();
		//条件判断
		if (seconds < 10) {
			System.out.println("恭喜你进入决赛圈,加油!!!");
			if (gender.equals("男")) {
				System.out.println("恭喜进入男子组决赛");
			} else if (gender.equals("女")) {
				System.out.println("恭喜进入女子组决赛");
			} else {
				System.out.println("恭喜进入人妖组决赛");
			}
		} else {
			System.out.println("很遗憾,来年再战!!!");
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值