首页 > 编程语言 >Java基础语法(下):程序流程控制

Java基础语法(下):程序流程控制

时间:2024-01-05 15:58:25浏览次数:39  
标签:case 语句 Java 程序流程 else 语法 switch 循环 break

程序流程控制

说明: untitle.png

顺序结构

说明: untitle.png

分支结构

分支语句1: if-else结构

说明: untitle.png

说明: untitle.png

if-else使用说明

1、条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量

2、语句块只有一条执行语句时,一对{}可以省略,但建议保留

3、if-else语句结构,根据需要可以嵌套使用

4、当if-else结构是“多选一”时,最后的else是可选的,根据需要可以省略

5、当多个条件是“互斥”关系时,条件判断语句及执行语句间顺序无所谓

当多个条件是“包含”关系时,“小上大下 / 子上父下”

分支语句2: switch-case结构

说明: untitle.png

说明

1、根据switch中表达式中的值,依次匹配各个case的常量,一旦匹配成功,则进入相应的case结构中,调用其执行语句,当调用完执行语句完以后,则仍然继续向下执行其他case语句中的执行语句,直到遇到break关键字或者switch-case结构末尾结束为止。

2、break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构。

3、switch-case结构中的表达式,只能是如下的六种数据类型之一:byte、short、char、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增)。

4、case之后只能声明常量,不可以声明范围。

5、break关键字在switch结构中是可选的。

6、default类似与if-else中的else,default结构是可选的。

7、如果switch中的多个case的执行语句相同,那么可以考虑合并,例如:

switch(expression){
    // 合并value1、value2、value3
    case value1:
    case value2:
    case value3:
        //TODO: do something
        break;
    case value4:
        //TODO: do something
}

switch-case和if-else的选择:

1、凡是可以使用switch-case的结构,都可以使用if-else

2、当既可以使用switch(表达式取值情况不多时)又可以使用if时,优先选择switch。

循环结构

在某些条件满足的情况下,反复执行特定代码的功能

说明: untitle.png

for循环

说明: untitle.png

while循环

说明: untitle.png

初始化部分出了while循环以后仍可以调用

do-while循环

说明: untitle.png

说明:

1、运行的时候会先执行一次循环体部分和迭代部分。

无限循环格式

for循环

for ( ; ; ){ }

for循环的初始化部分和迭代部分,可以使用,来分割执行多个语句,要求i、j必须是同一类型

for(int i = 0,j = i + 10;i < 5;i++,j += 2){
    System.out.println("i = " + i + ",j = " + j);
}
//		i = 0,j = 10
//		i = 1,j = 12
//		i = 2,j = 14
//		i = 3,j = 16
//		i = 4,j = 18

while循环

while(true){ }

do-while循环

do{ }while(true);

结束循环的两种方式

1、循环条件部分返回false

2、在循环体中,执行break

嵌套循环(多重循环)

将一个循环放在另一个循环体内,就形成了嵌套循环。

设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次。

外层循环控制行数,内层循环控制列数

优化:计算程序运行时间

衡量功能代码的优劣:

1、保证代码的功能正确性;

2、代码的可读性;

3、健壮性;

4、高效率与低存储(算法的好坏):时间复杂度、空间复杂度

//获取当前开始时间距离1970-01-01 00:00:00的毫秒数
long start = System.currentTimeMillis();
....
//获取当前结束时间距离1970-01-01 00:00:00的毫秒数
long end= System.currentTimeMillis();
//时间差计算程序运行时间
System.out.println("所花费的时间:" + (end - start));

关键字break、continue

说明: untitle.png

说明: untitle.png

continue和break的后面不可以声明执行语句。

flag: for(int i = 0;i < 10;i++){
    for(int j = 0;j < 100;j++){
        if(j > 20){
            break flag;
            //continue flag;
        }
    }
}

标签:case,语句,Java,程序流程,else,语法,switch,循环,break
From: https://www.cnblogs.com/yhgh/p/17947422

相关文章

  • Java编译原理
    概述java语言的"编译期"分为前端编译和后端编译两个阶段。前端编译是指把*.java文件转变成*.class文件的过程;后端编译(JIT,JustInTimeCompiler)是指把字节码转变成机器码的过程。在编译原理中,将源代码编译成机器码,主要经过下面几个步骤:Java中的前端编译java的前端......
  • java定时任务执行器
    ScheduledExecutorServiceexecutorService=Executors.newSingleThreadScheduledExecutor();这段代码使用Java的 ScheduledExecutorService 接口和 Executors 类来创建一个单线程的定时任务执行器。具体来说,Executors.newSingleThreadScheduledExecutor() 方法返回一......
  • nested exception is java.lang.IllegalArgumentException异常问题解决
    项目启动报错如下:nestedexceptionisjava.lang.IllegalArgumentException:Couldnotresolveplaceholder'xxx'invalue"${xxx}"问题解决比较简单,只说我所遇到的情况,原因就是字母拼写问题仔细看还是能看到大写的K和小写的k有一些细微的区别,将nacos中的k和代码中修改一致后启......
  • java桌面小闹钟
    需求为防止整天久坐,编写一个桌面闹钟.该闹钟功能很简单,一个小时的倒计时,倒计时结束弹框提示起身运动下.点击确认后重新计时.且有一个复位按钮,可以重新计时.代码定义一个1小时的时间变量创建一个GUI界面,有一个Label标签显示时间,一个Button进行复位操作计时器每秒判断时......
  • Java 涉密信息截取字符替换为‘*‘号
    @TestpublicvoidtestAddition(){encrypt("111111111111111111",6,4);//该身份证号码为测试,并不实际存在//电话号码测试encrypt("18888888888",3,2);//该电话号码为测试,并不实际存在}/***@paramfront需要显示前几......
  • 使用Java移动文件
    一、使用JavaIO包的File类移动文件JavaIO包的File类提供了renameTo()方法,该方法可以用来移动文件。该方法的参数为一个File对象,代表目标文件的完整路径和文件名。示例代码:FilesourceFile=newFile("sourceFilePath");FiledestFile=newFile("destinationFilePath");if(so......
  • JAVA-EE使用谷歌的ZXing实现生成带LOGO的QR Code------JAVA-EE
    packagecom.powernode.qrcode.servlet;importcom.google.zxing.BarcodeFormat;importcom.google.zxing.EncodeHintType;importcom.google.zxing.MultiFormatWriter;importcom.google.zxing.common.BitMatrix;importcom.google.zxing.qrcode.decoder.ErrorCorrect......
  • Apache Commons BCEL与Java字节码操作
    第1章:ApacheCommonsBCEL简介大家好,我是小黑,咱们今天来聊聊ApacheCommonsBCEL(ByteCodeEngineeringLibrary)。你可能会问,BCEL是什么鬼?别急,小黑这就给你娓娓道来。BCEL,它是一款专门用来操作Java字节码的库。想象一下,Java代码编译后变成了字节码,这些字节码是Java虚拟机执行的......
  • java基础语法API之GUI和时间类综合练习
    一:概述在这里将以两个小案例,去再次说明一个GUI和时间类的应用。二:具体案例<1>案例1:员工出勤查询在这里面需要最先写入一个DateChooser类,练习的时候可以直接复制这个代码,这个代码比较复杂。这个类是第一个代码块/*日期选择器,可以选择日期的显示格式*/importjavax.swing.*;imp......
  • Java之字符流的详细解析
     3.字符流当使用字节流读取文本文件时,可能会有一个小问题。就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储。所以Java提供一些字符流类,以字符为单位读写数据,专门用于处理文本文件。3.1字符输入流【Reader】java.io.Reader抽象类是表示用于......