java流程控制——顺序、分支结构(if-else)

        流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。
        其流程控制方式采用结构化程序设计中规定的种基本流程结构,即: 顺序结构、分支结构、循环结构
        顺序结构 :程序从上到下逐行地执行,中间没任何判断和跳转。

分支结构 :If-else结构;switch-case结构。

 switch和if语句的对比:

if和switch语句很像,具体什么场景下,应用哪个语句呢? 
        ①如果判断的具体数值不多,而且符合byte、short 、char、int、String、枚举等几 
种类型。虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。 
        ②其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。 
 也就是说,使用switch-case的,都可以改写为if-else。反之不成立。

分支结构 :

        ①根据条件,择性地执行某段代码。 
        ②if…else和switch-case两种分支语句。 
分支结构中的if-else(条件判断结构)
1、三种结构:
第一种:
    if(条件表达式){
    执行代码块;
    }

第二种:二选一
    if(条件表达式){
        执行代码块1;
    }else{
        执行代码块2;
    }

第三种:多选一
    if(条件表达式1){
        执行代码块1;
    }else if (条件表达式2){
        执行代码块2;
    }
    ……
    else{
        执行代码块n;
    }

if-else练习1:

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

说明:
1.else结构是可选的。
2.针对于条件表达式:
    >如果多个条件表达式之间是“互斥”关系(或没有交集的关系),哪个判断和执行语句声明在上面还是下面,无所谓。
    >如果多个条件表达式之间有交集的关系,需要根据实际情况,考虑清楚应该将哪个结构声明在上面。
    >如果多个条件表达式之间有包含的关系,通常情况下,需要将范围小的声明在范围大的前面。否则,范围小的就没机会执行了。


import java.util.Scanner;//函数调用
class IfExer1 {
	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);
		System.out.println("请输入你的成绩,以换取将励:");
		int score = scan.nextInt();
		if (score == 100){
			System.out.println("将励一辆BMW");
		}else if (score > 80 && score <= 99){
			System.out.println("将励一部iphone手机");
		}else if (score >= 60 && score <= 80){
			System.out.println("将励一台ipad");
		}else{
			System.out.println("什么将励也没有");
		}

	}
}

if-else练习2:

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

说明:
    ①if-else结构是可以相互嵌套使用的。
    ②如果if-else结构中的执行语句只有一行时,对应的一对{}可以省略的。但是不建议省略。

import java.util.Scanner;
class IfExer2 {
	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(num2 > num1){
			if (num3 >num2){
				System.out.println(num1 + "," + num2 + "," + num3);
			}else if (num3 < num1){
				System.out.println(num3 + "," + num1 + "," + num2);
			}else{
				System.out.println(num1+ "," + num3 + "," + num2);
			}
		}


	}
}

if-else练习3:

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

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

import java.util.Scanner;
class IfExer3 {
	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);
		System.out.println("请输入狗存活多少年了:");
		int dogage = scan.nextInt();
		int X = dogage - 2;
		int Y = X * 4;
		int Z = Y + 21;
		double W = dogage * 10.5;
		if (dogage > 2){
			System.out.println("狗的相对年龄:" + Z);
		}else if(dogage >= 0){
			System.out.println("狗的相对年龄:" + W);
		}else{
			System.out.println("输入年限错误");
		}
	}
}

if-else练习4:

        假设你想开发一个玩彩票的游戏,程序随机地产生一个两位数的彩票,提示用户输入一个两位数,然后按照下面的规则判定用户是否能赢。
        1)如果用户输入的数匹配彩票的实际顺序,奖金10 000美元。
        2)如果用户输入的所有数字匹配彩票的所有数字,但顺序不一致,奖金 3 000美元。
        3)如果用户输入的一个数字仅满足顺序情况下匹配彩票的一个数字,奖金1 000美元。
        4)如果用户输入的一个数字仅满足非顺序情况下匹配彩票的一个数字,奖金500美元。
        5)如果用户输入的数字没有匹配任何一个数字,则彩票作废。


提示:使用(int)(Math.random() * 90 + 10)产生随机数。
        Math.random() : [0,1)  *  90 -> [0,90) + 10 -> [10,100) -> [10,99]

import java.util.Scanner;
class IfExer4 {
	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);
		System.out.println("请输入一个两位数:(10-99)");
		int number = scan.nextInt();
		int num1 = number / 10;
		int num2 = number % 10;

		int value = (int)(Math.random() * 90 + 10);
		System.out.println(value);
		int v1 = value / 10;
		int v2 = value % 10;
		
		if (num1 == v1 && num2 == v2){
			System.out.println("中奖10000$");
		}else if (num1 == v2 && num2 == v1){
			System.out.println("中奖3000$");
		}else if (num1 == v1 || num2 == v2){
			System.out.println("中奖1000$");
		}else if (num1 == v2 || num2 == v1 ){
			System.out.println("中奖500$");
		}else{
			System.out.println("此票作废");
		}


	}
}

if-else练习5:

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

提示:
    Sysout(“身高: (cm))
    scanner.nextInt();
    Sysout(“财富: (千万))
    scanner.nextDouble();
    Sysout(“帅否: ①(true/false)) ②(是/否)
    scanner.nextBoolean(); scanner.next(); “是”.equals(str)

import java.util.Scanner;
class IfExer5 {
	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();

		if (height >= 180 && wealth >= 1 && isHandsome){
			System.out.println("我一定要嫁给他!!!");
		}else if (height >= 180 || wealth >= 1 || isHandsome){
			System.out.println("嫁吧,比上不足,比下有余。");
		}else{
			System.out.println("不嫁!");
		}
		*/

		//②
		System.out.println("请输入你是否帅:(是/否)");
		String isHandsome = scan.next();

		if (height >= 180 && wealth >= 1 && isHandsome.equals("是")){
			System.out.println("我一定要嫁给他!!!");
		}else if (height >= 180 || wealth >= 1 || isHandsome.equals("是")){
			System.out.println("嫁吧,比上不足,比下有余。");
		}else{
			System.out.println("不嫁!");
		}


	}
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MoerPerfect

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值