导读

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

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

用循环干什么呢?

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

1while循环

语法:

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

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

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

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

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

死循环有啥危害呢?

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

死循环没有利用价值吗?

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

小技巧,输入输出重定向

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

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

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

2do-while循环

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

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

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

举个例子:

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

3for循环

语法结构:

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语言:第一章简介第1讲

愉快地学Java语言:第一章简介第2讲

愉快地学Java语言:第二章基本程序设计 第1讲

愉快地学Java语言:第二章基本程序设计 第2讲

愉快地学Java语言:第三章 选择

愉快地学Java语言:第四章数学函数、字符和字符串

java for循环_愉快地学Java语言:第五章 循环相关推荐

  1. 语言求余和乘除优先级_愉快地学Java语言:第二章基本程序设计 第2讲

    导读 本文适合Java入门,不太适合Java中高级软件工程师. 本文以<Java程序设计基础篇>第10版为蓝本,采用不断提出问题,然后解答问题的方式来讲述. 本篇文章只是这个系列中的一篇, ...

  2. esp8266接收到的数据如何存放到数组中_愉快地学Java语言:第七章 数组

    导读 本文适合Java入门,不太适合Java中高级软件工程师.本文以<Java程序设计基础篇>第10版为蓝本,采用不断提出问题,然后解答问题的方式来讲述.本篇文章只是这个系列中的一篇,如果 ...

  3. easyloging 获取日志文件名字_愉快地学Java语言:第十五章 断言与日志

    导读 本文适合Java入门,不太适合Java中高级软件工程师.本文以<Java核心技术基础知识卷I>第10版为蓝本,采用不断提出问题,然后解答问题的方式来讲述.本篇文章只是这个系列中的一篇 ...

  4. c语言第五章循环结构答案,C语言循环结构练习题带答案

    <C语言循环结构练习题带答案>由会员分享,可在线阅读,更多相关<C语言循环结构练习题带答案(8页珍藏版)>请在人人文库网上搜索. 1.第5章循环结构程序设计练习题1.单项选择题 ...

  5. C语言 第五章 循环结构

    一.for 二.while 三.do while 四.continue 五.break 一.for 请在屏幕上输出1000个*号 printf("********************** ...

  6. Java 北大青鸟 第一学期 第五章 循环结构(一) 上级练习+课后作业

    第一学期 第五章 循环结构(一) 实例1 打印50分试卷 实例5 如何进行程序调试 Java MyShopping管理系统 > 购物结算+管理系统 本章作业 源码下载 实例1 int i = 1 ...

  7. 击鼓传花c语言编程题,c语言-第5章 循环程序设计.ppt

    <c语言-第5章 循环程序设计.ppt>由会员分享,可在线阅读,更多相关<c语言-第5章 循环程序设计.ppt(83页珍藏版)>请在人人文库网上搜索. 1.第5章 循环程序设计 ...

  8. c语言如何实现一只蜗牛爬的循环,[工程科技]第五章 循环结构程序设计c语言程序设计.ppt...

    [工程科技]第五章 循环结构程序设计c语言程序设计 第5章 循环结构程序设计 while语句 while语句 do while语句 do while语句 do while语句 do while语句 d ...

  9. 第5关:C循环-寻找完数-------C语言程序设计技术(循环结构程序设计2)

    第5关:C循环-寻找完数-------C语言程序设计技术(循环结构程序设计2) #include<stdio.h>int main(void){ /*********Begin****** ...

最新文章

  1. c++ 窗体上输出文字_C/C++经典面试题
  2. RT-thread内核之空闲线程
  3. oracle update 数据库恢复,ORACLE update 操作内部原理
  4. Flutter实现帧动画
  5. python中定义数据结构_Python中的数据结构—简介
  6. 面试题系列:网络篇夺命连环12问
  7. ospf v3 及WIN XP ipv6
  8. cibersortx怎么用_Xbox series x加速器怎么用 Xbox series x加速器的使用教程
  9. Linux安装jdk详细步骤
  10. mi自学站【2018年8月】
  11. VS2008SP1安装不上
  12. kptr_restrict 向用户空间内核中的指针(/proc/kallsyms-modules显示value全部为0)
  13. 论文阅读ICLR2020《ADAPTIVE STRUCTURAL FINGERPRINTS FOR GRAPH ATTENTION NETWORKS》
  14. 编程的教学方法和学习方法的思考
  15. 从DDR到DDR4,内存核心频率其实基本上就没太大的进步
  16. ┎结构之美┒之Trie树
  17. 傅里叶变换基函数可视化
  18. android七牛多张图片上传
  19. 求1~n中素数个数的几种方法C/C++
  20. win7系统共享看不到别的计算机呢,系统之家win7系统在同一个工作组看不到其他电脑的解决方法...

热门文章

  1. ACM入门之【拓扑排序】
  2. 【PAT乙级】1045 快速排序 (25 分)
  3. selenium2与python自动化1-selenium简介与降级
  4. AVL树(一)之 C语言的实现
  5. Keepalived运行命令
  6. mysql between and的用法的意思_从入门到入土:MySQL完整学习指南,包教包会!
  7. nmon结果分析工具_Nmon实时监控并生成HTML监控报告
  8. bool类型返回值_Python语法基础:高级变量类型
  9. stm32看门狗_「正点原子NANO STM32开发板资料连载」第十一章 独立看门狗实验
  10. innerhtml js执行_JS 中 DOM 操作