判断和循环 - 流程控制语句 - 顺序结构+if

之前学会了运算符
从这里开始,就要进入判断和循环了!
流程控制语句:通过一些语句,控制程序的执行流程。

1. 顺序结构

public class Test {
	public static void main(String[] args) {
    	System.out.println("努力做主人喜欢的事");
    	System.out.println("大小姐驾到!统统闪开!");
    	System.out.println("凛冬已至,故乡的梅花开了吗");
    	System.out.println("心怀不惧,方可翱翔于天际");
    }
}

顺序结构是Java程序默认的执行流程,按照代码的先后顺序,从上到下依次执行。

2. 分支结构

if语句

为什么要有if语句?

需求:定义变量记录女婿的酒量,如果女婿的酒量大于2斤,老丈人就搭理他,否否则就不搭理。

public class Test {
	public static void main(String[] args) {
    	int wine = 1;
        //判断 wine 是否大于2
        //如果大于,就执行
        System.out.println("小伙子,真不戳!");
    }
}

if语句就是用来判断的,他有三种形式:

1.If语句的第一种格式

1.格式
if (关系表达式) {
	语句体;
}

2.举例
if (酒量 > 2) {
	System.out.println("小伙子,不错");
}
  • 执行流程:
  1. 首先计算关系表达式的值
  2. 如果关系表达式的值为true就执行语句体
  3. 如果关系表达式的值为false就不执行语句体
  4. 继续执行后面的其他语句

请添加图片描述

练习

老丈人选女婿

需求:键盘录入女婿酒量,如果大于2斤,老丈人就给出回应,反之不回应。

代码实现

import java.util.Scanner;

public class IfDemo1 {
    public static void main(String[] args) {
        //需求:键盘录入女婿酒量,如果大于2斤,老丈人就给出回应,反之不回应。

        //if格式:
        //if(关系表达式){
        //  //语句体;
        //}

        //分析:
        //1.键盘录入女婿的酒量
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入女婿的酒量");
        int wine = sc.nextInt();
        //2.对酒量进行判断
        if (wine > 2) {
            System.out.println("小伙子,还不错呦!!");
        }

    }
}

if的注意事项:

  1. 大括号的开头可以另起一行书写,但是建议写在第一行的末尾。
  2. 在语句体中,如果只有一句代码,大括号可以省略不写**(不建议)**。
  3. 如果对一个布尔类型的变量进行判断,不要用==号,直接把变量写在小括号中即可。

错误示例:省略大括号导致报错

public class IfDemo2 {
    public static void main(String[] args) {
        int number = 10;
        if (number >= 10)
            int a = 100;//1.定义变量a 2.给变量a赋值为100.//报错
            System.out.println("number大于等于10");

    }
}

错误示例:判断布尔类型时==写为=导致if总会执行。

        boolean flag = false;
       if (flag = true) {		//错误
            System.out.println("flag的值为true");

修正:直接将变量放在()中即可

        boolean flag = false;
        if (flag) {
            System.out.println("flag的值为true");
  • 判断布尔类型本身即为true执行语句体,false不执行。

请添加图片描述

考试奖励
public class Test1 {
    public static void main(String[] args) {
        //小红:如果你这次考试全班第一,我就做你女朋友

        //分析:
        //1.定义变量记录小明的名次
        int ranking = 1;
        //对小明的名次进行判断。
        if (ranking == 1) {
            System.out.println("小红成为了小明的女朋友");

        }
    }
}

自动驾驶
public class Test2 {
    public static void main(String[] args) {
        //汽车无人驾驶时会涉及大量的判断
        //当汽车行驶时遇到了红绿灯,就会进行判断
        //如果红灯亮,就停止
        //如果黄灯亮,就减速
        //如果绿灯亮,就行驶

        //1.定义三个变量表示灯的状态
        //true 亮 false 灭
        boolean isLightGreen = false;
        boolean isLightYellow = false;
        boolean isLightRED = true;

        //2.判断
        //如果红灯亮,就停止
        //如果黄灯亮,就减速
        //如果绿灯亮,就行驶
        if (isLightGreen) {
            System.out.println("GoGoGo!!!");
        }

        if (isLightYellow) {
            System.out.println("slow!!!");
        }

        if (isLightRED) {
            System.out.println("stop!!!");
        }


    }
}

2.If语句的第二种格式

if (关系表达式) {
	语句体1;
} 
else 
{
	语句体2;
}
  • 执行流程:
  1. 首先计算关系表达式的值
  2. 如果关系表达式的值为true,就执行语句体1
  3. 如果关系表达式的值为false,就执行语句体2
  4. 继续执行后面的其他语句
  • 注:执行了语句体1不会再执行语句体2了。

练习

吃饭

需求:键盘录入一个整数,表示身上的钱。

如果大于等于100块,就是网红餐厅。

否则,就吃经济实惠的沙县小吃

代码实现

import java.util.Scanner;

public class Test3 {
    public static void main(String[] args) {
        //需求:键盘录入一个整数,表示身上的钱。
        //如果大于100块就吃网红餐厅
        //否则,就吃经济实惠的沙县小吃

        //分析:
        //1.键盘录入一个整数,表示身上的钱。
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入身上的钱");
        int money = sc.nextInt();
        //2.对钱进行判断(二选一)
        if (money >= 100) {
            System.out.println("吃网红餐厅");
        }
        else {
            System.out.println("吃经济实惠的沙县小吃");
        }
    }
}

商品付款
import java.util.Scanner;

public class Test4 {
    public static void main(String[] args) {
        /*在实际开发种,如果要根据两种不同的情况来执行不同的代码,就需要用到if的第二种格式
        需求:
        假设,用户在超市实际购买,商品总价为:600元。
        键盘录入一个整数表示用户实际支付的钱。
        如果付款大于等于600,表示付款成功,否则付款失败。
        */
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入实际支付的钱");
        int pay = sc.nextInt();
        if (pay >= 600) {
            System.out.println("付款成功");
        } else {
            System.out.println("付款失败");
        }

    }
}

影院选座

请添加图片描述

import java.util.Scanner;

public class Test5 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入电影票的票号");
        int ticketNumber = sc.nextInt();
        int result = ticketNumber % 2;

        if (ticketNumber >= 1 & ticketNumber <= 100) {
            if (result == 0) {
                System.out.println("坐右边");
            } else {
                System.out.println("坐左边");
            }
        } else {
            System.out.println("买的是假票,报警抓走");
        }

    }
}

3.if语句的第三种格式

if (关系表达式) {
	语句体1;
} else if (关系表达式2) {
	语句体2;
}
----------
 else {
 	语句体 n + 1;
 }

请添加图片描述

练习

小明的礼物
import java.util.Scanner;

public class Test6 {
    public static void main(String[] args) {
        /*
        根据不同的分数送给小明不同的礼物。
        如果是95~100分,送自行车一辆
        如果是90~94分,游乐场玩一天
        如果是80~89分,送变形金刚一个。
        如果是80分以下,揍小明一顿。
        */
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入小明的分数");
        int mark = sc.nextInt();
        if (mark >= 0 && mark <= 100) {
            if (mark >= 95 && mark <= 100) {
                System.out.println("送小明自行车一辆");
            } else if (mark >= 90 && mark <= 94) {
                System.out.println("带小明去游乐场玩一天");
            } else if (mark >= 80 && mark <= 89) {
                System.out.println("送小明变形金刚一个");
            } else {
                System.out.println("揍小明一顿");
            }
        } else {
            System.out.println("小明改了分数,喜提男女混合双打");
        }
    }
}
商品的价格

在实际开发中,多种情况判断时,会用到if的第三种格式:

需求:

商场都会有vip的会员制,根据不同的会员会有不同的折扣。

假设商品总价为1000

键盘录入会员级别,并计算出实际支付的钱。

会员1级:打9折。

会员2级:打8折。

会员3级:打7折。

非会员:不打折,要打也是打骨折。

代码实现

import java.util.Scanner;

public class Test7 {
    public static void main(String[] args) {

        int commodityPrice = 1000;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入会员的级别");
        int memberRank = sc.nextInt();
        if (memberRank >= 1 && memberRank <= 3) {
            if (memberRank == 1) {
                System.out.println("实际支付的钱为" + (commodityPrice * 0.9));
            } else if (memberRank == 2) {
                System.out.println("实际支付的钱为" + (commodityPrice * 0.8));
            } else if (memberRank == 3) {
                System.out.println("实际支付的钱为" + (commodityPrice * 0.7));
            }
        } else {
            System.out.println("给顾客打骨折,实际支付的钱为" + (commodityPrice));
        }

    }
}
自动驾驶
public class Test8 {
    public static void main(String[] args) {
        //汽车无人驾驶时会涉及大量的判断
        //当汽车行驶时遇到了红绿灯,就会进行判断
        //如果红灯亮,就停止
        //如果黄灯亮,就减速
        //如果绿灯亮,就行驶

        //1.定义三个变量表示灯的状态
        //true 亮 false 灭
        boolean isLightGreen = true;
        boolean isLightYellow = false;
        boolean isLightRED = false;

        //2.判断
        //如果红灯亮,就停止
        //如果黄灯亮,就减速
        //如果绿灯亮,就行驶
        if (isLightGreen) {
            System.out.println("GoGoGo!!!");
        } else if (isLightYellow) {
            System.out.println("slow!!!");
        } else if (isLightRED) {
            System.out.println("stop!!!");
        }

    }
}
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

whaleFall174

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

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

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

打赏作者

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

抵扣说明:

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

余额充值