欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JAVASE 流程控制语句结构

程序员文章站 2022-09-02 17:18:20
流程控制语句结构有顺序结构,分支结构以及循环结构,具体说明见下表所示。流程控制语句结构顺序结构:从上到下,顺序执行分支结构:根据选择不同,来执行不同的代码。if…else和switch…case循环结构:根据条件循环重复执行某段代码。for,while和do…while三种1. 顺序结构顺序结构:在同一个方法中从上往下执行package westos.lianxi.zuoye;/*顺序结构:在同一个方法中代码从上往下依此进行执行.从键盘上输入一个值,并进行打印输...

流程控制语句结构有顺序结构,分支结构以及循环结构,具体说明见下表所示。

流程控制语句结构
顺序结构:从上到下,顺序执行
分支结构:根据选择不同,来执行不同的代码。if…else和switch…case
循环结构:根据条件循环重复执行某段代码。for,while和do…while三种

1. 顺序结构

顺序结构:在同一个方法中从上往下执行

package westos.lianxi.zuoye;
/*顺序结构:在同一个方法中代码从上往下依此进行执行.从键盘上输入一个值,并进行打印输出*/
/*实现键盘输入的步骤: 1.导包,格式为:import  java.util.Scanner;
                      导包的位置必须在源文件的上面,在class的上面
                      2.创建键盘录入对象
                      格式为:Scanner sc=new Scanner(System.in);
                      3.通过对象获取数据
                      格式为:int a=sc.nextInt();
 */
import java.util.Scanner;//导包
public class ShunXuJieGou {
    public static void main(String[] args) {
        System.out.println("欢迎登陆教务系统");
        //创建键盘录入对象
        Scanner sc=new Scanner(System.in);

        System.out.println("请输入您的姓名:");
        String s=sc.next();
        System.out.println("您的姓名为:"+s);

        System.out.println("请输入您的年龄:");
        int age=sc.nextInt();
        System.out.println("您的年龄为"+age);

        System.out.println("请输入您的分数:");
        double score=sc.nextDouble();
        System.out.println("您的分数为:"+score);

        System.out.println("请告知是否毕业");
        boolean flag=sc.nextBoolean();
        System.out.println("您的毕业情况为:"+flag);
    }
}

输出的结果为:

欢迎登陆教务系统
请输入您的姓名:
小明
您的姓名为:小明
请输入您的年龄:
18
您的年龄为18
请输入您的分数:
85.5
您的分数为:85.5
请告知是否毕业
true
您的毕业情况为:true

2.分支结构

2.1 条件语句

2.1.1 if单分支语句

if单分支语句的语法格式:
if(条件表达式){
//当条件表达式结果为true时,需要执行的语句块
}

说明:
(1)条件表达式必须是布尔表达式(关系式或逻辑表达式)、布尔变量。
(2)语句块只有一个语句时,{}可以省略,但是建议进行保留
(3)执行流程:条件成立就执行语句,否则就不执行

JAVASE 流程控制语句结构


2.1.2 if…else双分支条件语句

if else双分支条件语句的语法格式为:
if(条件表达式){
//当条件表达式结果为true时,需要执行的语句块1
}else{
//当条件表达式结果为false时,需要执行的语句块2
}

说明:
(1)条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量。
(2)if或else的语句块只有一个语句时,{}可以省略,但是建议保留
(3)执行结果:当条件成立执行语句块1,不成立执行语句块2

JAVASE 流程控制语句结构


2.1.3 if…else 多分支条件语句

if...else多分支条件语句的语法结构:
if(条件表达式1{
//当条件表达式1结果为true时,需要执行的复合语句1
}else if(条件表达式2{
//当条件表达式结果为true时,需要执行的复合语句2
...
else{
//当上述条件表达式结果为false时,需要执行的语句
}

注意:
(1)每个if或者else后面的{}不是必须的,但是没有{},默认只能带一条语句。即if或者else后面的语句块只有一条语句时,可以省略{},但是可读性不够好。
(2)最后的else不是必须的,可以进行省略
(3)执行过程:从上到下判断条件,如果一旦某个条件成立了,就执行对应的语句块,后面的条件就不会看了。如果所有条件都不满足,如果存在else,那么执行else,那么执行else,如果不存在else,就什么也不执行

JAVASE 流程控制语句结构

package westos.lianxi.zuoye;

public class DuoFenZhi {
    public static void main(String[] args) {
        int score=89;
        //if...else if多分支语句
        if(score>90&&score<=100){
            System.out.println("成绩优秀");
        }
        else if(score>80&&score<=90){
            System.out.println("成绩良好");
        }
        else if(score>60&&score<=80){
            System.out.println("成绩及格");
        }
        else{
            System.out.println("成绩不及格");
        }
    }

}

输出的结果为:

成绩良好

2.1.4嵌套

if…else系列语句可以嵌套,在任意一个语句块中都可以再嵌套其他的条件语句

执行特点:当外层条件满足时,内层条件才判断


3.选择结构

选择结构-switch语法结构:
switch(表达式){
case 常量值1//执行语句块1
[break;]//break可以省略
case 常量值2//执行语句块2
[break]......
case 常量值n:
//执行语句块n;
[break];
[default:
//执行缺省语句(默认语句)
[break];
]
}

JAVASE 流程控制语句结构

注意事项
表达式返回的结果类型只能是byte,short,char,int,枚举(JDK1.5以后),String(JDK1.7以后)
表达式返回的结果的类型需要与case后的值的类型保持一致
case后面只能跟常量值,不能是变量值或者是不确定的表达式的值
同一个switch语句,case的常量值必须互不相同
break是可选的,当表达式返回结果与某个case后的值匹配成功后,执行相应分支的语句,一旦进入某个分支后,直到遇到break才能退出switch,否则将会继续执行下一个case语句(也可以成为case穿透)
default是可选的。位置也不一定在最后,也可以任意case的位置。但是不管在哪里,都是要所有case的常量值不匹配后才会进入default分支,需要遇到break或switch的闭括号"}"才会停止

总结:
1.switch的入口,表达式值与某个case匹配,或都不匹配,从default进入
2.switch的出口,遇到break或者switch的闭括号"}"结束


4.条件判断与选择结构的选择

1.当条件判断是等值判断,并且表达式的结果是byte,short,char,int,枚举,String类型的时候,用switch会更合适,其他都使用条件判断
2.可以使用switch…case的,肯定可以使用if…else,返回来不一定


5.循环结构

循环结构就是在满足一定条件的情况下反复执行某一段操作。在java中提供了三种常用的循环语句,分别是while循环语句、do…while循环语句和for循环语句。

5.1 while循环语句

while循环语句语法结构:
while(条件表达式){
//循环体语句块
}

JAVASE 流程控制语句结构

执行过程:
(1)先判断循环条件
(2)条件成立,执行循环体语句块
(3)回到(1)
(4)知道条件不成立,结束while循环


5.2 do…while循环语句

do while循环语句语法结构:
do{
//循环体语句块
}while(条件表达式);

执行过程:
(1)先无条件执行一次循环体语句块
(2)再判断循环条件
(3)条件成立,再次执行循环体语句块
(4)回到(2)
(5)直到条件不成立,结束do…while循环

注意:
执行一次循环体后,再判断条件,如果条件成立,继续下一次循环体,因此do…while循环至少执行一次循环体

JAVASE 流程控制语句结构


5.3 for循环语句

for循环结构语法结构:
for(初始化表达式1;循环条件表达式2;迭代表达式3[
//循环语句块
}

执行过程:
(1)执行初始化表达式1
(2)判断循环条件表达式2
(3)如果条件成立,执行循环体语句块
(4)执行迭代表达式3
(5)重复(2)(3)(4)(5)
(6)直到循环条件不成立,结束for循环

JAVASE 流程控制语句结构

注意:

  • 两个分号必不可少
  • 三个表达式可以省略,但要结合break,否则会死循环
  • 表达式1可以有多个变量声明,但必须是同一个类型,用逗号分隔
  • 表达式3可以有多个变量更新,用逗号隔开就行

5.4 三种循环语句的比较

JAVASE 流程控制语句结构

三种循环语句的比较
三种循环语句都能实现循环重复执行某段代码,可以相互转换
执行顺序不同:for、while是先判断后执行,do…while先执行后判断
执行效果不同:while和for,如果第一次条件判断不满足,那么循环体将一次都不执行;而do…while是执行一次循环体,然后才判断条件,看是否第二次执行循环体
执行效率不同:do…while效率最高
每一个循环都有四个循环要素,而for循环体现的最明显,循环变量初始值,循环条件,循环体,循环变量更新迭代
for循环适用于循环次数比较明确的,而do…while适用于至少一次的循环。while适用于循环条件比较明确的

5.5 嵌套循环

一个循环体中嵌套了另一个完整的循环结构。一个循环结构充另一个循环的循环体。
三个循环体中都可以嵌套另外任意一种循环结构。

执行特点:先执行外层循环,外循环执行一次,内循环从头到尾执行一轮。

总次数=外循环次数*内循环次数。详细说:总次数=内循环第一轮的次数+内循环第二轮的次数+内循环第三次的次数…+内循环第n轮的次数。轮数就是外循环的次数。

打印一个矩形4行5列的#

(1)打印4行的#

public class QianTao2 {
    public static void main(String[] args) {
        for(int i=0;i<4;i++){
            System.out.println("#####");
        }

    }
}

输出的结果为:
JAVASE 流程控制语句结构
(2)每行5个#,还可以使用循环

public class QianTao2 {
    public static void main(String[] args) {
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 5; j++) {
                System.out.print("#");
            }
            System.out.println();

        }
    }
}

输出的结果为:
JAVASE 流程控制语句结构


5.6 跳转

跳转
break:只能用于switch或者循环中,用于跳出所在的当前循环或switch
continue:只能用于循环中,提前结束本次循环,继续下一次循环
return:用于结束当前方法
package westos.lianxi.zuoye;

public class TestBreak {
    public static void main(String[] args) {
        for(int i=1;i<=5;i++){
            for(int j=1;j<=5;j++){
                System.out.print("*");
                if(i==j){
                    break;
                }
            }
            System.out.println();
        }
    }
}

输出的结果为:
JAVASE 流程控制语句结构

package westos.lianxi.zuoye;

public class TestContinue {
    public static void main(String[] args) {
        for(int i=1;i<=5;i++){
            for(int j=1;j<=5;j++){
                System.out.print("*");
                if(i==j){
                    continue;
                }
            }
            System.out.println();
        }
    }
}

结果为:
JAVASE 流程控制语句结构

本文地址:https://blog.csdn.net/qq_41537102/article/details/109612993

相关标签: JAVASE java