您的位置 首页 java

愉快地学Java语言:第五章 循环

导读

本文适合 Java 入门,不太适合Java中高级软件工程师。本文以《Java程序设计基础篇》第10版为蓝本,采用不断提出问题,然后解答问题的方式来讲述。本篇文章只是这个系列中的一篇,如果你喜欢这种讲解方式,或者觉得从中能学到知识,可以关注我,以便查阅本系列其他文章。

让我们开始愉快地学习Java语言吧!

用循环干什么呢?

我们用循环来重复地执行一条或多条语句。

1while循环

语法:

while(循环继续条件){
	// 循环体
	一条或多条语句;
} 
 

循环继续条件是布尔表达式,只有其为真(true)时,才执行循环体,直到其为假为止。

循环体只有一条语句时可以省略大括号:

while(循环继续条件)
	一条语句;
 

如果循环继续条件永远为真,那么循环永远不结束,我们称之为死循环。

死循环有啥危害呢?

一直执行循环体内的语句,无法执行循环之后的其他语句。

死循环没有利用价值吗?

非常坚定的告诉你,有!譬如,你要从某个队列中拿到任务,然后处理任务,不断有任务添加到队列中,那么你就要不断的拿任务,处理它。

小技巧,输入输出重定向

输入重定向从文件中读取数据,命令:java value< inputfile

输出重定向将输出发送给文件,命令:java value> outputfile

结合输出输入重定向:java value <inputfile > outputfile

2do-while循环

do{
	// 循环体
	一条或多条语句;
}while (循环继续条件);
 

do-while与while循环长的很像,那他们有啥区别呢?

do-while循环先执行一次循环体,然后再判断循环继续条件。如果循环体中的语句至少要执行一次,那么使用do-while比较合适。

举个例子:

我们发现do-while比while多执行了一次。

3 for循环

语法结构:

for (初始操作;循环继续条件;每次迭代后的操作)
// 循环体
一条或多条语句
}
 

一般地,for循环使用一个变量来控制循环体的执行次数,称这个变量为 控制变量 。控制变量必须在循环控制结构体内或循环前说明

那么初始操作,循环继续条件,每次迭代后的操作表达了什么含义呢?

这样,初始操作即是对控制变量的初始化操作。

循环继续条件即指每次迭代前都会判断控制变量是否满足指定的条件,只有满足才继续执行循环体。

每次迭代后的操作即每次迭代后对控制变量的操作。

循环控制变量可以有多个,用逗号分隔他们,例如:

for(int i=0,j=0;i<100&&j<1000;i++,j++){
}
 

下面来看几个特殊的for循环。

for(int i=0,j=0;;i++,j++){
...
}
 

循环继续条件没有给出,那么会怎样呢?

没有给出循环继续条件相当于循环继续条件总是为true,那么这是个无限循环。

for(;;){
...
}
 

初始操作,循环继续条件,每次迭代后的操作全都没给出,那么这也是一个无限循环。

for(;true;){
...
}
 

同上例一样效果。

int i=0,j=0;
for(;i<100&&j<1000;i++,j++){
...
}
 

这种写法也可,但不提倡,因为i、j的作用域比将它们放到初始操作中大,肯能会不好控制。

while 循环和 for 循环都称为前测循环,do while 循环称为后测循环。前测循环是先验证循环条件是否为真,为真才执行循环体内的语句。后测循环是先执行循环体内的语句,然后在测试循环条件是否为真。

4嵌套循环

嵌套循环由外层循环和内层循环构成,内层循环位于外层循环循环体内。

例:

while(循环继续条件){
	......
	while(循环继续条件){
		// 循环体
	一条或多条语句;
} 
	......
} 
 

5关键字 break 和continue

break:跳出循环;

continue:结束当前迭代,执行下次迭代。

break和continue语句在每种循环中的行为是否一样呢?

break是一致的,跳出循环,执行下一行代码。

而continue语句会有区别:

在while和do-while循环中,执行完continue语句之后,马上计算循环继续条件;而在for循环中,continue语句之后会立即先执行每次迭代后的动作,再计算循环继续条件。

6以一个例子结束本章

数组a是无序数组,数组元素为整型,按升序排列。

算法描述为:

在未排序序列中找到最小元素,放到已排序序列末尾。不断地重复这个过程,直到未排序序列为空。

从下面的代码中可以看出“已排序序列”和“未排序序列”的含义。从代码中看出没有创建新的已排序序列和未排序序列,只是将已排序的元素放到原始序列的头(采用元素位置交换的方式)。那么除去原始序列头部的已排序序列,剩下的就是未排序序列。

假设有数组:a={5,2,9,4,8,1,13}

运行结果为:b={1,2,4,5,8,9,13}

这一讲的内容稍微少一点,你也可以看看以前的文章,复习一下:

文章来源:智云一二三科技

文章标题:愉快地学Java语言:第五章 循环

文章地址:https://www.zhihuclub.com/184103.shtml

关于作者: 智云科技

热门文章

网站地图