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

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

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、网络拓扑图、组织结构图等

posted @ 2024-08-30 08:54  星游u  阅读(76)  评论(0)    收藏  举报