大数据必学Java基础(二十):流程控制的引入和if语句介绍

举报
Lansonli 发表于 2022/07/17 09:06:25 2022/07/17
【摘要】 ​流程控制的引入和if语句介绍一、引入1、流程控制的作用流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。2、控制语句的分类控制语句分为三类:顺序、选择和循环。“顺序结构”代表“先执行a,再执行b”的逻辑。“条件判断结构”代表“如果…,则…”的逻辑。“循环结构”代表“如果…,则再继续…”的逻辑。三种流程控制语句就能表示所有的事情!不信,你可以试试拆...

​流程控制的引入和if语句介绍

一、引入

1、流程控制的作用

流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。

2、控制语句的分类

控制语句分为三类:顺序、选择和循环。

“顺序结构”代表“先执行a,再执行b”的逻辑。

“条件判断结构”代表“如果…,则…”的逻辑。

“循环结构”代表“如果…,则再继续…”的逻辑。

三种流程控制语句就能表示所有的事情!不信,你可以试试拆分你遇到的各种事情。这三种基本逻辑结构是相互支撑的,它们共同构成了算法的基本结构,无论怎样复杂的逻辑结构,都可以通过它们来表达。所以任何一种高级语言都具备上述两种结构。

本章是大家真正进入编程界的“门票”。

3、流程控制的流程

二、if语句介绍

分支结构(选择结构)

1、单分支

语法结构:

if(布尔表达式){

语句块

}

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

代码:

public class TestIf01{
        public static void main(String[] args){
                //实现一个功能:给出三个数(1-6),对三个数求和计算,根据和的大小来分配不同的奖品
                //1.给出三个数:
                int num1 = 6;
                int num2 = 2;
                int num3 = 3;
                //2.求和
                int sum = 0;
                sum += num1;
                sum += num2;
                sum += num3;
                System.out.println("和为:"+sum);
                
                //3.根据和判断奖品:
                //如果和大于等于14,那么就是一等奖
                if(sum>=14){
                        System.out.println("一等奖");
                        System.out.println("恭喜你很幸运,中了一等奖");
                }
                
                if(sum>=10&&sum<14){
                        System.out.println("二等奖");
                }
                
                if(sum>=6&&sum<10){
                        System.out.println("三等奖");
                }
                
                if(sum<6){
                        System.out.println("四等奖");
                }
                
                /*
                if-单分支:
                (1)结构:
                        if(条件表达式,这个表达式的结果是布尔值:要么是false,要么是true){
                                //如果上面()中的表达式返回结果是true,那么执行{}中代码
                                //如果上面()中的表达式返回结果是false ,那么不执行{}中代码
                                //PS:{}中的代码是否执行,取决于()中表达式的返回结果
                        }
                (2)上面的代码中,我用四个单分支拼凑出四个选择,每个选择是独立的,依次判断执行的
                (3)if后面的()中的条件,要按照自己需求尽量完善
                (4){}可以省略不写,但是一旦省略,这个if就只负责后面的一句话,所以我们不建议初学者省略
                */
        }
}


2、多分支

语法结构:

if(布尔表达式1) {

语句块1;

} else if(布尔表达式2) {

语句块2;

}……

else if(布尔表达式n){

语句块n;

} else {

语句块n+1;

}

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

数轴分析:

代码:

public class TestIf02{
        public static void main(String[] args){
                //实现一个功能:给出三个数(1-6),对三个数求和计算,根据和的大小来分配不同的奖品
                //1.给出三个数:
                int num1 = 6;
                int num2 = 4;
                int num3 = 2;
                //2.求和
                int sum = 0;
                sum += num1;
                sum += num2;
                sum += num3;
                System.out.println("和为:"+sum);
                
                //3.根据和判断奖品:
                /*
                利用一个多分支
                【1】结构:
                if(){
                        
                }else if(){
                        
                }else if(){
                        
                }...
                else{
                        
                }
                【2】else:隐藏了一个条件,跟上面分支条件表达式相反的功能 (详见数轴分析)
                【3】多分支:好处:只要满足一个 分支以后,后面的分支就不需要判断了 --》效率高
                【4】我们写代码的时候,尽量保证else的存在--》else分支相当于“兜底”“备胎”的作用,别的分支都不走,就会走这个分支了
                */
                if(sum>=14){
                        System.out.println("一等奖");
                }else if(sum>=10){//隐藏了sum<14
                        System.out.println("二等奖");
                }else if(sum>=6){//隐藏了sum<10
                        System.out.println("三等奖");
                }else{//隐藏了sum<6
                        System.out.println("四等奖");
                }
                
                
                
        }
}


3、双分支

语法结构:

if(布尔表达式){

语句块1

}else{

语句块2

}

当布尔表达式为真时,执行语句块1,否则,执行语句块2。也就是else部分。流程图如图所示:

4、分支的嵌套使用

4.1、分支结构练习1

会员购物时,不同积分享受的折扣不同,规则如下:

计算会员购物时获得的折扣,效果如下:

本题主要考的是 程序的优化:

import java.util.Scanner;
public class TestIf04{
        public static void main(String[] args){
                //1.给出积分:
                Scanner sc = new Scanner(System.in);
                System.out.print("请输入会员积分:");
                
                //先判断键盘录入的数据是不是int类型的
                if(sc.hasNextInt()==true){//是int类型数据:
                        //将这个int类型的数据接收:
                        int score = sc.nextInt();
                        //判断这个积分是否是正数:
                        if(score>=0){
                                String discount = "";
                                //2.根据积分判断折扣:
                                if(score>=8000){
                                        discount = "0.6";
                                }else if(score>=4000){
                                        discount = "0.7";
                                }else if(score>=2000){
                                        discount = "0.8"; 
                                }else{
                                        discount = "0.9"; 
                                }
                                System.out.println("该会员享受的折扣为:"+discount);
                                
                        }else{//score<0
                                System.out.println("对不起,你录入的积分是负数!不符合需求!");
                        }	
                }else{//不是int类型的数据
                        System.out.println("你录入的积分不是整数!");
                }
        
        }
}


4.2、分支结构练习2

小朋友搬桌子:

年龄大于7岁,可以搬桌子;

如果年龄大于5岁,性别是男,可以搬桌子;

否则不可以搬动桌子,提示:你还太小了

本题主要考的是:逻辑

方式1:性别用0或者1接收

import java.util.Scanner;
public class TestIf05{
        public static void main(String[] args){
                //1.录入小朋友的年龄:
                Scanner sc = new Scanner(System.in);
                System.out.println("请录入小朋友的年龄:");
                int age = sc.nextInt();
                
                //2.根据年龄判断:
                if(age>=7){
                        System.out.println("yes");
                }else if(age>=5){
                        //录入小朋友的性别;
                        System.out.println("请录入小朋友的性别:男:1  女 :0");
                        int sex = sc.nextInt();
                        if(sex==1){//男生
                                System.out.println("yes");
                        }else{//女孩
                                System.out.println("no");
                        }
                }else{//age<5
                        System.out.println("no");
                }
        }
}


方式2:性别用男或者女接收

import java.util.Scanner;
public class TestIf06{
        public static void main(String[] args){
                //1.录入小朋友的年龄:
                Scanner sc = new Scanner(System.in);
                System.out.println("请录入小朋友的年龄:");
                int age = sc.nextInt();
                
                //2.根据年龄判断:
                if(age>=7){
                        System.out.println("yes");
                }else if(age>=5){
                        //录入小朋友的性别;
                        System.out.println("请录入小朋友的性别:");
                        String str = sc.next();
                        char sex = str.charAt(0);
                        if(sex=='男'){
                                System.out.println("yes");
                        }else{
                                System.out.println("no");
                        }
                }else{//age<5
                        System.out.println("no");
                }
        }
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。