首页 > 编程语言 >Java学习笔记11-流程控制语句结构

Java学习笔记11-流程控制语句结构

时间:2024-08-30 08:53:13浏览次数:8  
标签:11 语句 Java do break while 循环 执行

一.顺序结构
顺序结构
顺序结构是最简单的流程控制结构,它按照代码书写的顺序依次执行每一条语句。例如:

int a = 1, b = 2, c = 3;
System.out.println("a + b = " + (a + b));
System.out.println("b * c = " + (b * c));

二.分支结构
if分支判断
(1).单if条件判断
if(条件,条件的结果一定是布尔类型){
条件成立,执行该代码;
}
这种情况一般用于拦截,满足条件下只做一件事,例如:实现游戏暂停功能;
(2).两个分支判断
if(条件){
条件成立,执行该代码;
}else{
否则,执行该代码;
}
这种情况一般用于判断两个分支,只能执行其中一条分支,例如:实现登录界面判断账号密码是否正确
(3).三个以及以上的分支判断
if(A条件){
A条件成立,执行该代码;
}else if(B条件){
B条件成立,执行该代码;
}else if(C条件){
C条件成立,执行该代码;
}else if(N条件){
N条件成立,执行该代码;
}else{
以上条件都不成立,执行该代码;
}
这种情况一般用于判断三个以及以上分支,只能执行其中一条分支,例如:实现提交表单时候判断表单的必选项和条件

switch分支判断
switch(数据){
case 值1:
数据值1,则执行该代码;
break;
case 值2:
数据
值2,则执行该代码;
break;
case 值3:
数据值3,则执行该代码;
break;
case 值4:
数据
值4,则执行该代码;
break;
default:
以上条件都不成立,执行该代码;
}
注意:
switch里面的条件必须用这几种数据类型(byte/short/int/char)中的一种,jdk8以上还可以用(String/枚举);
如果少了break,会出现透传现象(就是没有后面break的语句都会执行,会出现多种结果知道遇到break才会结束);
3.break关键字:
(1)break主要用在循环语句或者switch语句中,用来跳出整个语句块;
(2)break跳出最里层的循环,并且继续执行该循环下面的语句;
4.contine关键字:
(1)continue适用于任何循环控制结构中;
(2)作用是让程序立刻跳转到下一次循环的迭代;
5.return关键字:
(1)返回方法指定类型的值(前提是方法的返回值类型不是void);
(2)方法的结束,它会导致当前的方法退出;
6.随机数对象:Random
Random ran = new Random();先通过new获取对象
再通过ran.nextInt(n)获取0~n的随机数,n为一个数字;
7.扫描对象:Scanner
Scanner scan = new Scanner(System.in);先通过new获取对象;
再通过scan.nextInt()获取到输入的整数;
nextDouble()获取到输入的浮点型数字;
next()获取到输入字符串;
8.if和return、break、continue配合使用可以作为很多地方的拦截使用,特别是在循环里面。

三.循环结构
Java的循环结构主要有三种:for循环,while循环,以及do-while循环,这里也是主要讲这三种循环。

一.for循环
首先是for循环,for循环通常用于已知循环次数的情况,使用该循环时,测试是否满足某个条件,如果满足条件,则进入下一次循环,否则,退出该循环。

1.流程图如下:img

2.for循环的语法格式:img

这里要注意的是,布尔的返回值只有True和False,而语法格式内的执行顺序是:

初始表达式1-->布尔表达式2-->语句-->表达式3;

3.程序举例:

public static void main(String[] args) {
		for (int i = 1; i <= 5; i++) {
			System.out.println("我爱Java");
		}
	}

输出的结果为:img

不难看出,这是一个较为简单的for循环,他把 “我爱java” 这句话循环输出了五遍。

4.for语句的使用说明:

(1)在for语句之前已经给循环变量赋初值,则for语句的循环变量赋初值部分可以省略,但其后得分号不省略。
(2)可以将循环变量修正值的工作纳入循环体中去做。

解释图如下:

img

实际上,for语句可以三个部分都省略。但省略表达式2会陷入死循环,除非在循环体中用break跳出。

二.while循环
while语句:先判断后执行,有可能一次都不执行

1.基本语法和流程图:
基本语法:

while(布尔表达式) {  
    // 循环体  
}

流程图:

img

while循环次数最少是0次,也就是一次都不运行。

用文字来描述它的运行过程就是:

先判断布尔的值,若结果为true则执行循环语句序列, 再判断布尔的值,若结果为true则再执行循环语句序列, 这样反复执行,直到布尔的值为false时,while循环结束

2.程序举例:
用while循环计算1+2+3+4+·····+100:


	public static void main(String[] args) {
		int i = 1;// 变量用于存储项
		int sum = 0;// 变量用于存储和
		while (i <= 100) {
			sum += i;
			i++;
		}
		System.out.println("和为:" + sum);
	}

//输出结果为:和为:5050

三:do-while循环
1.基本语法和流程图

do {  
    // 循环体  
} while(布尔表达式);

do-while循环:do-while循环与while循环类似,但是它至少会执行一次循环体,然后再判断布尔表达式的结果,也就是说,就算布尔值为false(条件不满足)也会先执行一次。

流程图:

img

仔细一看,while循环和do-while循环的流程图基本是倒过来的,所以它是先执行,再判断,条件符合(布尔值为true)再执行,条件不符合就停止。

2.程序举例:
用do...while循环计算1+2+3+4+·····+100:

public static void main(String[] args) {
	int i = 1;// 变量用于存储项
	int sum = 0;// 变量用于存储和
	do {
		sum +=i;
		i++;
	} while (i<=100);
	System.out.println("和为:" + sum);
}//运行结果为:和为:5050

3.补充
没错,依旧是这道算术题,两种循环得出的结果一模一样,这就引出一个问题:

do-while循环与while循环是否可以互相转换?是可以的,但有一个条件,那就是while执行次数必须大于或等于1次,这里指的互换是指循环体内的语句基本一样,只是循环语句互换了而已。

四:跳出语句
1.break语句
break语句用于跳出本层循环,进入外层循环。解释一下就是:在本层循环内,执行break语句之后,之后的语句不执行了,也就是结束本层循环。

在循环语句中常与条件语句一起使用。

(1)图示:img

可以看出,break后面还有一句语句,但执行break后,后面的语句就会被跳过。

(2).程序举例:

for (int i = 0; i < 10; i++) {  
    if (i == 5) {  
        break; // 当i等于5时,跳出循环  
    }  
    System.out.print(i+" ");//此处输出语句无换行
}

上面代码输出结果为 0 1 2 3 4 ,为了观看体验,我在输出语句中删了换行。

2.continue语句
用于终止本次循环,跳过该循环体中位于continue后面的语句,进入下次循环,与break不同的是,执行continue之后,continue下面的语句直接不执行了,也就是直接进行下一次循环。

用于循环语句中,类似于break语句,常与条件语句一起使用。

(1).图示img

(2).程序举例:

for (int i = 0; i < 10; i++) {  
    if (i % 2 == 0) {  
        continue; // 当i是偶数时,跳过当前迭代  
    }  
    System.out.print(i+" ");  
}

上面代码输出结果为1 3 5 7 9 ,为了观看体验,我在输出语句中删了换行。

3.break和continue使用注意
(1)break和continue都可以在循环中使用,为循环提供额外的控制。
(2)在某些情况下,使用break和continue可以简化程序设计。但是,过度使用或者不正确使用会使程序难以读懂也难以调试。

五.循环嵌套

循环嵌套(即多重循环),在一个循环体内又出现有一个或多个完整的循环结构则称为循环嵌套。
do...while、while、for三种循环方式可以相互构成循环嵌套。

1.程序举例

for (int i = 1; i < 7; i++) {
	for (int j = 1; j <=8; j++) {//for循环嵌套
		System.out.print("*");//此处无换行
	}
    System.out.println();//换行
}

代码输出结果为:

img

这里用了for循环的嵌套示例,其余两种循环也是大同小异。

总结:循环语句的选择
建议使用自己觉得最顺手一种循环语句
通常,如果已知重复次数,那就采用for循环。如果无法确定重复次数,就采用while循环。如果在检验继续条件前需要执行循环体,就用do...while循环替代while循环。

四.绘制程序流程图
流程图是流经一个系统的信息流、观点流或部件流的图形代表。在企业中,流程图主要用来说明某一过
程。这种过程既可以是生产线上的工艺流程,也可以是完成一项任务必需的管理过程。
常见的绘制工具有 Visio 、 PowerDesigner 等。
1 、圆角矩形表示 “ 开始 ” 与 “ 结束 ” 。
2 、矩形表示行动方案、普通工作环节用
3 、菱形表示问题判断或判定(审核 / 审批 / 评审)环节
4 、用平行四边形表示输入输出
5 、箭头代表工作流方向

img

推荐工具:ProcessOn 支持流程图、思维导图、原型图、UML、网络拓扑图、组织结构图等

标签:11,语句,Java,do,break,while,循环,执行
From: https://www.cnblogs.com/mwx2024/p/18387909

相关文章

  • 基于javaweb的城乡居民基本医疗信息管理系统设计与开发论文
    摘  要信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理......
  • 基于javaweb的宠物猫认养系统论文
    摘 要传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装宠物猫认养系统软件来发挥其高效地信息处理的作用,可以规范信息管理流程,让管理工作可以系统化和程序化,同时,宠物猫认养系统......
  • Java Script网页设计案例
    1.JavaScript网页设计案例下面我将提供一个简单的JavaScript网页设计案例,该案例将实现一个动态的待办事项列表(TodoList)。用户可以在页面上添加新的待办事项,标记它们为已完成,以及删除它们。这个案例将使用HTML来构建页面结构,CSS来美化页面,以及JavaScript来添加动态功能。1.1HTM......
  • Java后端微服务架构下的服务认证机制:Spring Security OAuth
    Java后端微服务架构下的服务认证机制:SpringSecurityOAuth大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在微服务架构中,服务之间的安全认证是一个复杂而重要的问题。SpringSecurityOAuth提供了一套强大的解决方案,通过它,我们可以轻松实现服务的认......
  • Java-时间日期类
            在Java中,处理日期和时间的类主要集中在 java.time 包中,这是自Java8引入的新的日期和时间API。以下是一些常用的类及其方法.1. LocalDateLocalDate 表示不带时区的日期。常用方法示例:importjava.time.LocalDate;importjava.time.format.DateTimeFor......
  • Java LeetCode 练习
        3142.判断矩阵是否满足条件需求:        给你一个大小为mxn的二维矩阵grid。你需要判断每一个格子grid[i][j]是否满足:        如果它下面的格子存在,那么它需要等于它下面的格子,也就是grid[i][j]==grid[i+1][j]。        ......
  • 从匿名内部类到Lambda表达式:Java编程的优雅进化
    匿名内部类首先我们先来介绍一下什么是匿名内部类匿名内部类:java中一种特殊的类定义方式,它允许你在需要实现一个接口或继承一个类的地方直接定义一个该接口或类的匿名子类。若想创建一个派生类的对象,并且对象只创建一次,可以设计为匿名内部类,可以大大简化代码注意:匿名内部类......
  • Java核心API——io类缓冲流
    在前面的学习中我们学习了如何向文件中简单的传输写入数据java将流分为两类节点流与处理流节点流:又称为低级流,特点:实际连接程序与另一端的"管道",负责实际读写数据的流.IO一定是建立在某个低级流的基础上进行的.文件流就是低级流,它们是实际连接程序与文件的管道,负责......
  • Java中的String、StringBuilder、StringBuffer
            在Java中,String、StringBuilder 和 StringBuffer 是处理字符串的三个常用类,它们各有特点和适用场景。以下是对这三个类的详细解释、常用方法的代码示例以及它们之间的区别和适用场景。StringString 类表示不可变的字符序列。一旦创建,String 对象的内容......
  • Java Script网页设计案例
    1.JavaScript网页设计案例下面我将提供一个简单的JavaScript网页设计案例,该案例将实现一个动态的待办事项列表(TodoList)。用户可以在页面上添加新的待办事项,标记它们为已完成,以及删除它们。这个案例将使用HTML来构建页面结构,CSS来美化页面,以及JavaScript来添加动态功能。1.1HT......