我是靠谱客的博主 温暖裙子,最近开发中收集的这篇文章主要介绍自学Java(随时放弃十 流程控制语句①)Java基础语法 (七)流程控制语句,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在这里插入图片描述

Java基础语法 (七)流程控制语句

学了这么多,终于拉到一点点编程的小手手了,有没有很兴奋?

如果大家有同感,那么恭喜你,接下去让我们再接再厉,共创辉煌。

对不起,单位宣传文章写多了

✿✿ヽ(°▽°)ノ✿

所谓流程就是按一定的顺序,顺序不同,结果不同。

在一个程序中,语句的执行顺序对结果有直接影响,作为一名未来的程序员,我们要非常清楚每一条语句的执行流程,并且熟练操控每条语句的执行顺序,来实现程序的有效运行。

流程控制语句分为三类:顺序结构选择结构循环结构

一、顺序结构语句

这是程序中最基本也最简单的语句,没有什么高大上的语法结构,按照代码的先后顺序依次执行。

就是写在前面的代码先执行,写在后面的代码后执行。

**顺序结构语句**
开始
语句1
语句2
结束

比如说下面这段代码:

public class demon {
    public static void main(String[] args) {
        System.out.println("一生二");
        System.out.println("二生三");
        System.out.println("三生万物");

    }
        }
一生二
二生三
三生万物

Process finished with exit code 0

虽然这三句话是同时呈现在你眼前,但也是按照程序里面代码顺序出现的,绝不会颠覆代码顺序。什么意思呢,就是如果你代码里面的顺序是123,程序执行也是123,不会出现321或213这种情况。

除非电脑出现自主意识,但根据建国后不许成精这条潜规则,这种情况应该不会发生。

二、选择结构语句

选择这个词,本身隐含了大脑逻辑思考的过程,所以在选择结构语句中,代码要对具体的逻辑运算进行判断(逻辑运算的结果有两个:是和否),进行选择,按照不同的选择,执行不同代码。

具体来说,有两种选择结构的语句:if语句switch语句

(一)if语句

大概可以分为3种格式,但也有分成4种的,具体怎么分不重要,重要的是大家理解它的用法即可。

1、基本的if选择结构

这种语句结构简单,适用于一种判断的单分支模式,比如:我一看见厕所门口的标识是,就没进去。????????????

格式为:

if(关系表达式){
   语句体
}

执行流程
①首先判断关系表达式,看结果是true还是false;
②若结果为true,就执行语句体;
③若结果为false,就不执行语句体。

在这里插入图片描述
老规矩,让我们高举知识的栗子……
在这里插入图片描述
例子1

public class demon {
    public static void main(String[] args) {
        int x=50;
        if(x==50){
            System.out.println("x等于50");
        }
    }
}

x等于50

Process finished with exit code 0

定义一个int类型的变量x,并赋值为50,现在判断:如果x等于50,那么系统就输出x等于50这句话。也就是当电脑判断关系表达式部分的结果为true时,执行语句体。

例子2

public class demon {
    public static void main(String[] args) {
        int x=50;
        if(x==20) {
            System.out.println("x等于20");
        }
    }
}

Process finished with exit code 0

当电脑判断关系表达式部分的结果为false时,不执行语句体。

怎么样,是不是很简单?

但别看他简单,有些地方特别容易被忽视,造成大家写语句的时候出错,而且还是那种一眼看不出来的。下面我来总结一下:

关系表达式的结果无论复杂还是简单,必须是Boolean类型;

②if后面控制的语句体如果是一条,原则上大括号可以省略,如果是多条,就不能省略;建议永远别省略

③一般来说,有左大括号 { ,就没有分号 ,反之亦然。

2、if else选择结构语句

这种语句体可以处理简单的条件分支情况,比如,我一看见厕所门口的标识是,就没进去,转头去了女厕。????????????

格式为:

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

执行流程
①首先判断关系表达式,看结果是true还是false;
②若结果为true,就执行语句体1;
③若结果为false,就执行语句体2。

在这里插入图片描述
例子

public class demon {
    public static void main(String[] args) {
        int x=50;
        int y=30;
        if(x==y) {
            System.out.println("x等于y");
        }else{
            System.out.println("x不等于y");
        }
    }
}

x不等于y

Process finished with exit code 0

定义两个int类型的变量,x=50,y=30; 如果x=y,则输出“x等于y”这句话,否则输出“x不等于y”这句话。

很显然x并不等于y,所以电脑执行了第二条语句。

下面让我们来做两道练习题巩固一下知识:

练习1:获取两个数据中较大的值;
练习2:判断一个数据是奇数还是偶数。
要求:创建键盘录入符

在这里插入图片描述
练习1答案

import java. util.Scanner;
public class demon {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入第一个数据");
        int a=sc.nextInt();
        System.out.println("请输入第二个数据");
        int b=sc.nextInt();
        int max;

        if(a>b) {
            max=a;
        }else{
            max=b;
        }
        System.out.println("max:"+max);
    }
}

请输入第一个数据
10
请输入第二个数据
4
max:10

Process finished with exit code 0

逻辑其实很简单,无非就是键盘录入符if else语句的结合,只不过需要多定义一个变量来接受最大值,即max。

现在让我们再来看一下这道题,不知大家有没有发现他和前面讲到的三元运算符很相似。(根据比较判断,给出的也是两个结果)那么这道题,其实也可以写成下面的样子:

import java. util.Scanner;
public class demon {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入第一个数据");
        int a=sc.nextInt();
        System.out.println("请输入第二个数据");
        int b=sc.nextInt();
        int max=(a>b)?a:b;
        System.out.println("max:"+max);


    }
}

请输入第一个数据
5
请输入第二个数据
9
max:9

两种方法,结果是一样的。

那么是不是所有的if else 语句都可以用三元运算符平替呢?

答案肯定是,要不然这两个没有独立存在的必要,合并成一个方法就可以了。

着两者的区别是:

三元运算符可以实现的,都可以用if else语句替代,反之不成立。

因为在if语句里,有时控制的是一条语句,而不是一个结果,而三元运算符是运算符,操作完毕后应该有一个结果返回,而输出语句不能作为返回结果。

具体的例子,大家可以拿下面的练习2去改装一下试试就明白了,在此不赘述。

练习2答案

import java. util.Scanner;
public class demon {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个数据");
        int a=sc.nextInt();
        int max=a;

        if(max%2==0) {
            System.out.println("max是偶数");
        }else{
            System.out.println("max是奇数");
        }

    }
}

奇数,不能被2整除。偶数,能被2整除。按照这个逻辑,编辑关系表达式。

3、if多选结构语句

在现实生活中,我们往往面临多种选择的局面,这个时候,前面的两种结构语句就不够看了,需要一个更高级的选择结构语句来处理这种问题。

格式为:

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

执行流程
①首先判断关系表达式1,判断其结果是true还是false;
②若为true,则执行语句体1;
③若为false,就继续判断关系表达式2,判断其结果是true还是false;
④若为true,则执行语句体2;
⑤若为false,就继续判断后续的关系表达式,看其结果是true还是false;
⑥……
⑦如果没有任何关系表达式结果为true,就执行语句体n+1。

在这里插入图片描述
下面举一个比较经典的栗子

在这里插入图片描述
例题
要求用键盘录入输入学生成绩,判断并输出该成绩的等级:
90~100 优秀
80~90 好
70~80 良
60~70 及格
0~60 不及格

import java. util.Scanner;
public class demon {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你的成绩");
        int score=sc.nextInt();

        if(score>=90 && score<=100) {
            System.out.println("优秀");
        }else if(score>=80 && score<=90){
            System.out.println("好");
        }else if(score>=70 && score<=80){
            System.out.println("良");
        }else if(score>=60 && score<=70){
            System.out.println("及格");
        }else {
            System.out.println("不及格");
        }

    }
}

请输入你的成绩
50
不及格

Process finished with exit code 0
请输入你的成绩
89Process finished with exit code 0
请输入你的成绩
95
优秀

Process finished with exit code 0

相信很多朋友都是这样写的,而这已经可以基本满足程序的需要了。但是,如果你仔细观察一下这个程序,就不难发现它隐藏的bug。

比如我这样输入:

请输入你的成绩
101
不及格

Process finished with exit code 0
请输入你的成绩
-59
不及格

Process finished with exit code 0
请输入你的成绩
80Process finished with exit code 0

芭比Q了???? 芭比Q了???? 芭比Q了????

程序员在编写程序时,除了要考虑正确数据以外,还需要考虑错误数据边界数据这两个问题。

这是因为软件的使用者(俗称用户)千奇百怪,想法多变,有些人往往不会按照程序的要求输入数据。

就比如我

所以,上面这个例子可以修改成这样:

import java. util.Scanner;
public class demon {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你的成绩");
        int score=sc.nextInt();
        if (score<0||score>100){
            System.out.println("你输入的成绩有误");
        } else if(score>=90 && score<=100) {
            System.out.println("优秀");
        }else if(score>=80 && score<90){
            System.out.println("好");
        }else if(score>=70 && score<80){
            System.out.println("良");
        }else if(score>=60 && score<70){
            System.out.println("及格");
        }else {
            System.out.println("不及格");
        }

    }
}

请输入你的成绩
101
你输入的成绩有误

Process finished with exit code 0

怎么样,学到这里是不是感觉还可以?

下面让我们做两道题验证一下:

练习1
键盘录入x的值,计算出y的值并输出。
x和y的关系如下:

x的值y的值
x>=3y=2z+1
-1<x<3y=2x
x<=-1y=2x-1

练习2
键盘录入月份值,并输出对应季节

答案下期公布,今天先到这里。谢谢阅读

文章中图片部分来自网络,侵权立删

最后

以上就是温暖裙子为你收集整理的自学Java(随时放弃十 流程控制语句①)Java基础语法 (七)流程控制语句的全部内容,希望文章能够帮你解决自学Java(随时放弃十 流程控制语句①)Java基础语法 (七)流程控制语句所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部