【Java|基础篇】逻辑控制-顺序结构、分支结构和循环结构

简介: 顺序结构是指代码按照从上往下的顺序依次执行,分支结构是选择语句是条件成立时,才会执行的语句.共有三种.分为是if ,if else和if else if else

顺序结构


顺序结构是指代码按照从上往下的顺序依次执行


分支结构


选择语句是条件成立时,才会执行的语句.共有三种.分为是if ,if else和if else if else

if单分支语句

// 语法

if (条件语句){

条件为true时 执行的代码

}

注:如果if里面只有一条要执行的语句的话,{} 可以不加,但建议还是加上去.

if 单分支语句执行流程图

2.png

示例:

public static void main(String[] args) {

System.out.println("成绩等级评测");

int a = 61;

if (a >= 60){

 System.out.println("成绩及格");

}

System.out.println("评测完毕");

}

/*

输出结果:

成绩等级评测

a的成绩及格

评测完毕

*/    


if else双分支语句


// 语法:

if (条件语句){

条件判断为true时 执行的代码

}else {

条件判断为false时 执行的代码

}

if else双分支语句的执行流程:

3.png

示例:

public static void main(String[] args) {

System.out.println("成绩等级评测");

int a = 61;

if (a >= 60){

 System.out.println("成绩及格");

}else{

 System.out.println("成绩为不合格");

}

System.out.println("评测完毕");

}

/*

输出结果:

成绩等级评测

a的成绩及格

评测完毕

*/

可以看到else里面的语句并没有被执行,是因为满足了if的条件判断语句,所以执行了if里面的语句.else语句只有在if条件语句不满足时才会执行,


if else if else多分支语句


// 语法:

if (条件语句1){

条件为true时 执行的代码

}else if(条件语句2){

条件为true时 执行的代码

}else if(条件语句3){

条件为true时 执行的代码

//else if语句可以有多个,此处只列出了两个

}else{

以上条件均不满足时,执行此处的代码

}

if else if else多分支语句的执行流程

4.png


还是刚才的示例,如果再细分一下,分数[0,60)为不合格,[60,75)为合格,[75,90)为良好,[90,100]为优秀.那么此时单分支和双分支就不合适了.这是就要使用多分支语句了.

示例:

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.print("请输入你的分数:");

   int a = scanner.nextInt();

System.out.println("成绩等级评测");

if (a < 60){

 System.out.println("成绩不及格");

}else if(a < 75){

 System.out.println("成绩及格");

}else if (a < 90) {

 System.out.println("成绩良好");

}else{

 System.out.println("成绩优秀");

   }

   System.out.println("评测完毕");

}

注:此处的写法有很多.我这里的写法也不一定是最好的.

此时就可以进行输入分数进行评测了.来看演示结果:

5.png

这里的结果为"成绩良好"说明进入到了第二else if语句,因为if语句和else if中的条件语句均不满足, 虽然写着是a < 90,但实际上表示的是a >=75 && a < 90,这里需要注意

if else if else 里面是可以相互嵌套的,但是最好不要嵌套的过多,可读性不好


switch语句


switch (表达式){

case 常量值1:

 执行的代码

 break;

case 常量值2:

 执行的代码

 break;

case 常量值3:

 执行的代码

 break;

...

default: // 其它的情况

 执行的代码

}

执行流程:

1.先计算表达式的值

2.和case依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时结束

3.当表达式的值没有与所列项匹配时,执行default

  public static void main(String[] args) {

       Scanner scanner = new Scanner(System.in);

       int day = scanner.nextInt();

       switch (day){

           case 1:

               System.out.println("星期一");

               break;

           case 2:

               System.out.println("星期二");

               break;

           case 3:

               System.out.println("星期三");

               break;

           case 4:

               System.out.println("星期四");

               break;

           case 5:

               System.out.println("星期五");

               break;

           case 6:

               System.out.println("星期六");

               break;

           case 7:

               System.out.println("星期天");

               break;

           default:

               System.out.println("输入错误!");

       }

   }

注意:

多个case后的常量值不可以重复

switch 不能表达复杂的条件

break 不要遗漏, 否则会失去 "多分支选择" 的效果

default与else类似,都是前面条件都不满足时执行

switch中的最后一个语句可以不加break

运行结果:

6.png7.png

如果没有break,它就会在满足的条件的地方继续往后面执行,直到遇到break或者执行完后面所有代码


循环语句


循环语句有for循环,while循环和do while循环

在循环中会有三个表达式:

表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次

表达式2: 循环条件,满则循环继续,否则循环结束

表达式3: 循环变量更新方式

下面会对这些内容一一介绍


for循环


// 语法

for(表达式1;布尔表达式2;表达式3){

循环语句;

}

for循环的执行流程图:

8.png

举个简单的例子,打印从1到5的数字:

 public static void main(String[] args) {

       for (int i = 0; i < 5; i++) {

           System.out.println(i+1);

       }

   }

   // 输出结果为 1~5

这里的写法有很多.

i是从0开始的,第一次i等于0,对i进行判断,小于5.执行循环体.然后执行i++.继续i进行判断.然后循环往复.直到i>=5.不满足条件.循环结束

大家只要掌握一种循环,学习另外两种循环就很容易了.


while循环


// 语法

while(循环条件){

循环语句

}

// 如果循环条件true,就会执行循环语句.

// 循环条件为false时,结束循环

在while循环中,表达式1一般写在while循环的前面,而表达式3写在循环语句中.


do while循环


// 语法

do{

循环语句;

}while(循环条件);

与while循环中相同,表达式1一般写在do的前面,而表达式3写在循环语句中.


continue


continue的作用: 跳过本次循环,直接进入下一次循环

如果我想要打印[0,100)之间所有的奇数,用continue就可以这样写

   public static void main(String[] args) {

       for (int i = 0; i < 100; i++) {

           if (i % 2 == 0){

               continue;

           }else {

               System.out.println(i);

           }

       }

   }

如果i对2取余结果等于0,说明是偶数,则用continue跳过本次循环.否则就打印i的值


break


break的作用: 结束当前循环

例如:如果要判断arr数组中是否有偶数,如果不是偶数,就打印数组对应下标的值.如果是偶数,则结束循环

代码:

  public static void main(String[] args) {

       int[] arr = {1,3,5,6,7,9};

       for (int i = 0; i < arr.length; i++) {

           if (arr[i] % 2 == 0){

               System.out.println("arr中有偶数!");

               break;

           }

           System.out.print(arr[i]+" ");

       }

   }

   // 输出结果:

   // 1 3 5 arr中有偶数!

在arr[i]等于6时,for循环里面的if语句的条件成立,就会打印arr中有偶数!执行break退出循环


总结


本篇文章主要讲解了顺序结构,逻辑结构和循环结构.还有continue和break这两个关键字.

思维导图如下:


9.png9.png

9.png

相关文章
|
26天前
|
存储 算法 Java
🚀Java零基础-顺序结构详解 🚀
【10月更文挑战第11天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
32 6
|
1月前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
41 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
1月前
|
Java C语言
【一步一步了解Java系列】:探索Java逻辑控制
【一步一步了解Java系列】:探索Java逻辑控制
21 1
|
2月前
|
Java
java基础(1)逻辑控制if、switch
本文继续介绍了Java中的基础逻辑控制语句,包括if-else语句和switch语句。文章通过示例代码展示了if-else语句如何根据条件判断执行不同的代码块,以及switch语句如何根据变量的值执行不同的case分支。还提供了一个使用Scanner类从键盘获取输入,并根据输入的数字输出对应的星期日的示例。最后提到了如何在IDEA中格式化代码。
29 2
|
3月前
|
Java
Java应用结构规范问题之在UnitConvertUtils工具类将千米转换为米的问题如何解决
Java应用结构规范问题之在UnitConvertUtils工具类将千米转换为米的问题如何解决
|
3月前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
|
3月前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之配置Logback以在控制台输出日志的问题如何解决
Java应用结构规范问题之配置Logback以在控制台输出日志的问题如何解决
|
3月前
|
Java C语言
|
3月前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之AllLoggers接口获取异常日志的Logger实例的问题如何解决
Java应用结构规范问题之AllLoggers接口获取异常日志的Logger实例的问题如何解决
|
3月前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之dal层中的mapper数据源类型进行组织的问题如何解决
Java应用结构规范问题之dal层中的mapper数据源类型进行组织的问题如何解决