分支语句——if-else

1.if-else条件判断的几种结构

1.1结构1

if(条件表达式){
执行表达式
}

1.2结构2

二选一:
if(条件表达式){
执行表达式1
}else{
执行表达式2
}

1.3结构3

n选一
if(条件表达式){
执行表达式1
}else if(条件表达式){
执行表达式2
}else if(条件表达式){
执行表达式3
}

else{
执行表达式n
}

2.说明

  1. else 结构是可选的。
  2. 针对于条件表达式:
    如果多个条件表达式之间是“互斥”关系(或没有交集的关系),哪个判断和执行语句声明在上面还是下面,无所谓。
    如果多个条件表达式之间有交集的关系,需要根据实际情况,考虑清楚应该将哪个结构声明在上面。
    如果多个条件表达式之间有包含的关系,通常情况下,需要将范围小的声明在范围大的上面。否则,范围小的就没机会执行了。
  3. if-else结构是可以相互嵌套的。
  4. 如果if-else结构中的执行语句只有一行时,对应的一对{}可以省略的。但是,不建议大家省略。

3.练习

1.岳小鹏参加Java考试,他和父亲岳不群达成承诺:
如果:
成绩为100分时,奖励一辆BMW;
成绩为(80,99]时,奖励一台iphone xs max;
当成绩为[60,80]时,奖励一个 iPad;
其它时,什么奖励也没有。
请从键盘输入岳小鹏的期末成绩,并加以判断

import java.util.Scanner;

class IfTest
{
	public static void main(String[] args)
	{
		Scanner scan = new Scanner(System.in);
		
		System.out.println("请输入岳小鹏成绩:");
		int score = scan.nextInt();
		
		//java语言不能连着比较,因为第一个比较完成之后,输出的为boolean类型,不能与数值型比较了
		//else if(80 < score <= 99)
		
		if(score == 100)
		{
			System.out.println("奖励BWM");
		}
		else if(score > 80 && score <= 99)
		{
			System.out.println("奖励iphone xs max");
		}
		else if(score > 60 && score <= 80)
		{
			System.out.println("奖励iPad");
		}
		else
		{
			System.out.println("没有奖励");
		}
		
		
		
	}
}

2.编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,
对它们进行排序(使用 if-else if-else),并且从小到大输出。

import java.util.Scanner;

class IfTest2
{
	public static void main(String[] args)
	{
		Scanner scan = new Scanner(System.in);
		
		System.out.println("请输入第一个整数");
		int num1 = scan.nextInt();

		System.out.println("请输入第二个整数");
		int num2 = scan.nextInt();
		
		System.out.println("请输入第三个整数");
		int num3 = scan.nextInt();
		
		if(num1 >= num2)
		{
			if(num3 >= num1)
			{
				System.out.println(num2 + "," + num1 + "," + num3);
			}
			else if(num3 <= num2)
			{
				System.out.println(num3 + "," + num2 + "," + num1);
			}
			else
			{
				System.out.println(num2 + "," + num3 + "," + num1);
			}
		}
		else if(num1 <= num2)//可以直接优化成else
		{
			if(num3 >= num2)
			{
				System.out.println(num1 + "," + num2 + "," + num3);
			}
			else if(num3 <= num1)
			{
				System.out.println(num3 + "," + num1 + "," + num2);
			}
		}
	}
}

3.对下列代码,若有输出,指出输出结果。(就近原则)

int x = 4;
		int y = 1;
		if (x > 2) {
			if (y > 2) 
				System.out.println(x + y);
				System.out.println("atguigu");
		} else
			System.out.println("x is " + x);

分析:分析:x>2,符合,但是y并不大于2.这部分有2行代码,分别是System.out.println(x+y);和 System.out.println(“atguigu”);在没有括号的情况下,只能有一句跟着if(y>2),就是上边的第一句System.out.println(x+y);,如果不符合则为输出atguigu,所以这道题输出为atguigu。

4.我家的狗5岁了,5岁的狗相当于人类多大呢?其实,狗的前两年每
一年相当于人类的10.5岁,之后每增加一年就增加四岁。那么5岁的狗
相当于人类多少年龄呢?应该是:10.5 + 10.5 + 4 + 4 + 4 = 33岁。

编写一个程序,获取用户输入的狗的年龄,通过程序显示其相当于人
类的年龄。如果用户输入负数,请显示一个提示信息

Scanner scan = new Scanner(System.in);
		System.out.println("请输入狗的年龄:");
		int dogage = scan.nextInt();
		
		if(dogage <= 2)
		{
			System.out.println("狗的年龄是:" + dogage * 10.5);
		}
		else if(dogage > 2)
		{
			System.out.println("狗的年龄是:" + (2 * 10.5 + (dogage - 2)*4));
		}
		else
		{
			System.out.println("狗狗还没出生啊");
		}

5.如何获取一个随机数:10-99

double value = (int)(Math.random() * 90 + 10);//[0.0,1.0) --> [0.0,90.0) --> [10.0,100.0) --> [10,99]
System.out.println(value);
//公式:[a,b]: (int)(Math.random() * (b -a +1) + a)

6.大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出
一定的条件:高:180cm以上;富:财富1千万以上;帅:是。
? 如果这三个条件同时满足,则:“我一定要嫁给他!!!” ? 如果三个条件有为真的情况,则:“嫁吧,比上不足,比下有余。”
? 如果三个条件都不满足,则:“不嫁!”

class IfExer1
{
	public static void main(String[] args)
	{
		Scanner scan = new Scanner(System.in);
		
		System.out.println("请输入你的身高:(cm)");
		int height = scan.nextInt();
		
		System.out.println("请输入你的财富:(千万)");
		double wealth = scan.nextDouble();
		
		/*
		System.out.println("请输入你是否帅:(true/false))");
		boolean isHandsome = scan.nextBoolean();
		
		 方式1
		if(height >= 180 && wealth >= 1 && isHandsome == true)
		{
			System.out.print("perfect!");
		}
		else if(height >= 180 || wealth >= 1 || isHandsome == true)
		{
			System.out.print("ordinary");
		}
		else
		{
			System.out.print("no");
		}
		*/
		
		//方式2
		System.out.println("请输入你是否帅:(是/否))");
		String isHandsome = scan.next();
		
		if(height >= 180 && wealth >= 1 && isHandsome.equals("是"))
		{
			System.out.print("perfect!");
		}
		else if(height >= 180 || wealth >= 1 || isHandsome.equals("是"))
		{
			System.out.print("ordinary");
		}
		else
		{
			System.out.print("no");
		}
		
		
		
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值