循环语句

1、 while语句

while关键字的中文意思是“当……的时候”,也就是当条件成立时循环执行对应的代码。while语句是循环语句中基本的结构,语法格式比较简单。

while语句语法格式:

while(循环条件)

循环体;

为了结构清楚,并且使循环体部分可以书写多行代码,一般把循环体处理成代码块,则语法格式变为:

while(循环条件){

循环体;

}

语法说明:和if语句类似,如果不是用代码块的结构,则只有while后面的第一个语句是循环体语句。在该语法中,要求循环条件的类型为boolean类型,指循环成立的条件,循环体部分则是需要重复执行的代码。

执行流程:在执行while语句时,首先判断循环条件,如果循环条件为false,则直接执行while语句后续的代码,如果循环条件为true,则执行循环体代码,然后再判断循环条件,一直到循环条件不成立为止。

下面结合具体的示例来演示一下while语句的基本使用。首先我们来实现一个无限循环,也称死循环,具体代码如下:

while(true){

System.out.println(‘a’);

}

下面讲解一下该while语句的执行顺序,首先判断while语句的循环条件,条件成立,则执行循环体的代码,输出字符a,然后再判别循环条件,条件成立,继续执行循环体代码,输出a,再判断循环条件……,依次类推,因为循环条件一直成立,所以该程序的功能是一直输出a,永不停止。

说明:在控制台下执行死循环的程序,可以按Ctrl+C结束循环,在Eclipse中运行死循环的程序,可以选择执行窗口中的红色按钮“Terminate”结束程序。

下面是使用while语句输出0-9这10个数字,程序实现的原理是使用一个变量代表0-9之间的数字,每次输出该变量的值,每次对该变量的值加1.变量的值从0开始,只要小于数字10就执行该循环。具体的示例代码如下:

int i = 0;

while(i < 10){

System.out.println(i); //输出变量的值

i++; //变量的值增加1

}

其执行流程为:

1、 执行int I = 0;

2、 判断i<10是否成立,如果不成立则结束,否则执行下一步

3、 输出变量i的值

4、 i的值增加1

5、 跳转到步骤2继续执行

需要注意的是,首先while语句中的条件是循环成立的条件,也就是该条件成立则继续循环,所以在书写时注意。另外,内部代码的书写有顺序,同样是上面的代码,如果调整内部代码的顺序,如下所示:

int i = 0;

while(i < 10){

i++; //变量的值增加1

System.out.println(i); //输出变量的值

}

则程序的执行结果将变为输出数字1-10.所以在循环语句中,代码之间的顺序也影响整个程序的逻辑。

下面是用循环实现一个简单的数学逻辑,求1-10这10个数字的和。程序的原理是这样:声明一个变量i,从1变化到10,在声明一个变量sum,每次和i的值相加以后赋值给自身,下次再使用sum是变化以后的i相加,循环结束以后,得到的结果就是数字1-10之间所有数字的和。

示例代码如下:

int i = 1;      //循环变量

int sum = 0; //数字和

while(i <= 10){

sum += i;   //和当前的i值相加

i++;       //变量i增加1

}

这样,第一次循环是把和1相加的结果赋值给sum,然后再使用sum的值和2相加再赋值给sum,依次类推,则得到1-10之间所有变量的和。

在使用循环语句时,发现规律需要的时间比编写和调试代码需要的时间多得多,所以要善于发现规律,善于思考。

2 、do-while语句

do-while语句由关键字do和while组成,是循环语句中最典型的“先循环再判断”的流程控制结构,这个和其它2个循环语句都不相同。

do-while语句的语法格式为:

do{

循环体;

}while(循环条件);

语法说明:在do-while语句中,循环体部分是重复执行的代码部分,循环条件指循环成立的条件,要求循环条件是boolean类型,值为true时循环执行,否则循环结束,最后整个语句以分号结束。

执行流程:当执行到do-while语句时,首先执行循环体,然后再判断循环条件,如果循环条件不成立,则循环结束,如果循环条件成立,则继续执行循环体,循环体执行完成以后再判断循环条件,依次类推。

实现和while语句实现的类似的示例,则死循环的示例代码为:

do{

System.out.println(‘a’);

}while(true);实现输出0-9这10个数字的循环为:

int i = 0;

do{

System.out.println(i);   //输出变量的值

i++;                 //变量增加1

}while(i < 10);

实现求1-10这10个数字的和的代码为:

int i = 1;

int sum = 0;

do{

sum += i; //求和

i++;      //变量增加1

}while(i < 10);

System.out.println(sum);   //输出和

同理,实现求5的阶乘的代码类似,在数学上5的阶乘指1×2×3×4×5,数学上规定0的阶乘等于1,在实际计算时,阶乘的值增加的非常快,所以需要注意结果不能溢出。其具体代码为:

int i = 1;

int result = 1;

do{

result *= i;

i++;

}while(i <= 5);

System.out.println(result);

在实际的程序中,do-while的优势在于实现那些先循环再判断的逻辑,这个可以在一定程度上减少代码的重复,但是总体来说,do-while语句使用的频率没有其他的循环语句高

3 、for语句

for关键字的意思是“当…的时候”,是实际开发中比较常用的循环语句,其语法格式相对于前面的循环语句来说稍显复杂,但是在熟悉以后,将会发现其语法安排的比较条理,把循环控制和循环体很清晰的分开。

for语句的语法格式为:

for(初始化语句;循环条件;迭代语句){

循环体;

}

语法说明:

1、 和其它流程控制语句一样,语句中的大括号不是语法必须的,但是为了结构清楚以及在循环体部分可以书写多行代码,一般使用大括号。

2、 初始化语句作用是在循环开始以前执行,一般书写变量初始化的代码,例如循环变量的声明、赋值等。该语句可以为空。

3、 循环条件是循环成立的条件,要求必须为boolean类型,如果该条件为空,则默认为true,即条件成立。

4、 迭代语句是指循环变量变化的语句,一般书写i++、i—这样的结构,当然,该语句也可以为空5、 循环体指循环重复执行的功能代码。

执行流程:

1、 执行初始化语句

2、 判断循环条件,如果循环条件为false,则结束循环,否则执行下一步

3、 执行循环体

4、 执行迭代语句

5、 跳转到步骤2重复执行需要注意的是:for语句中的各个语句都可以为空,初始化语句在for语句执行时执行且只执行一次。

依据for语句的语法格式,则最简单的for语句是如下格式:for(;;);由于循环条件为空时,默认为true,则循环条件恒成立,该循环的循环体即最后的一个分号,这样的语句称作空语句,则该循环是一个死循环,循环体是空语句。

在实际书写代码时,一般把循环控制部分都写在for语句的小括号内部,而循环体只书写和逻辑相关的代码,这种结构使逻辑显得很清晰。

使用for语句输出的0-9之间数字的代码如下:

for(int i = 0;i < 10;i++){

System.out.println(i);

}

则该语句的执行流程为:

1、 执行int i = 0;

2、 判断i<10,如果条件不成立则结束,否则继续执行下一步

3、 执行System.out.println(i);

4、 执行i++

5、 跳转到步骤2继续执行类似的示例代码,实现求1-100之间数字的和,代码如下:

int sum = 0;

for(int i = 1;

i <= 100;i++){

sum +=i;

}

System.out.println(sum);

这些是一些基本的for语句的使用,在通常情况下,for语句和while语句之间可以实现很简单的转换,例如下面是一个使用for语句书写的while格式的代码:

int i = 0;for(;i < 10;){

System.out.println(i);

i++;

}关于for语句的深入使用请参看后续的综合示例部分的讲解。

java for 死循环_关于java编程死循环的应用相关推荐

  1. java进度条_自学java你需要知道的,适合编程小白

    1. java学习网站 之前在很多学习网站上学习过Java,踩过很多坑,今天给大家推荐一个比较好用的Java学习网站,希望大家能少踩坑 Java教程 | 项目实践一站式java学习 这个网站的针对性强 ...

  2. java 管理 程序设计_用java编程设置管理的用户登录

    紧急:希望大家帮帮忙!谢谢.importjavax.swing.*;importjava.awt.*;publicclassFlowLayoutDemoextendsJFrame{publicFlow ...

  3. java核心教程_核心Java教程

    java核心教程 Welcome to Core Java Tutorial. I have written a lot on Core Java and Java EE frameworks. Th ...

  4. java 包命名_【Java】包的命名规则

    命名规范 包:所有单词的字母小写,之后每个单词用-隔开,如 org.nemo.demo 常量:所有单词的字母大写,之后每个单词用_隔开,如 FLAG 类:所有单词的首字母大写,如 TestJava p ...

  5. java 分割一个_分割java

    [java]分割字符串工具类,霸气 jdk自带的 java 分割字符串,分割string,可以根据多个条件去分割.比如逗号,分号,逗号或者分号. 比如一个字符串:"abc,def;gh,ij ...

  6. java 字符串包_包java字符串

    Java核心技术卷I基础知识3.6.3 不可变字符串 3.6.3 不可变字符串 String类没有提供用于修改字符串的方法.如果希望将greeting的内容修改为"Help!",不 ...

  7. java武功秘籍_请问java全套内容都有什么呢?

    我整理的Java全套内容学习路线,分为6个阶段(大阶段)第一阶段:java内功心法篇 第二阶段:Java武功秘籍(经典框架) 第三阶段:Java高级功法(主流框架) 第四阶段:Java成神之路 第五阶 ...

  8. 云南大学软件学院java实验九_云南大学java实验9

    java实验 (9) 6页 2下载券 Java实验9 4页 2下载券 JAVA实验9 7页 1下载券 java 实验9 暂无评价 1页 免费 Java上机实验9 4页 免费 云大JAVA 实验9图形. ...

  9. bigint对应java什么类型_「JAVA」从格式化输出到扫描输入,深究Java正则表达式匹配之道

    字符串是不可变的 字符串是不可变的,也就是说当字符串的内容发生改变的时候,会创建一个新的String对象:但是如果内容没有发生改变的时候,String类的方法会返回原字符串对象的引用. 而正则表达式往 ...

  10. java robot 对象_用Java Robot对象实现服务器屏幕远程监视

    用Java Robot对象实现服务器屏幕远程监视 作者:李鲁群 摘要: 有时候,在Java应用程序开发中,如:远程监控或远程教学,常常需要对计算机的屏幕进行截取,由于屏幕截取是比较接近操作系统的操作, ...

最新文章

  1. 好的开始是成功的一半:网页优化之标题篇
  2. 【解决方案】无法将grub-efi-amd64-signed软件包安装到/target/【安装Ubuntu】
  3. 网站自动登录功能的设计
  4. 【渝粤题库】陕西师范大学209010 现代教育战略 作业 (专升本)
  5. 关于hexo更新到GitHub后博客内容未变问题
  6. git 命令行(一)-版本回退
  7. 通过在Global.asax文件中配置Application来统计的方法
  8. 真假难辨!全球首位AI合成女主播正式上岗 引发全球媒体圈关注
  9. Python之倒序访问list
  10. [linux] redhat 7 ssh 安装配置免密登录
  11. silverlight 4常用的多线程技术
  12. 【老生谈算法】matlab实现免疫算法源码——免疫算法
  13. maya中英文对照_Maya2012中英文对照表 (4)
  14. 毕业生怎样尽快把自己打造成国际专家级人物?
  15. 【一坨理论AC的题】Orz sxy大佬
  16. iOS 性能、架构、socket 小结
  17. mongodb添加多条数据_mongodb一次能插入多少数据
  18. 缩略图查看器(Thumbs.DB Viewer) 1.2.0.80
  19. Robotframwork-ride 启动异常解决
  20. Unity技术手册 - 粒子基础主模块属性-中

热门文章

  1. UiPath Computer Vision本地版使用
  2. 平均年薪50W+,AI算法岗凭什么?附2020高薪岗位十五强
  3. qq语音聊天对方听不到我说话怎么办?
  4. ORACLE 数据泵之NETWORK_LINK
  5. 【C++教程】04.求1加到100
  6. 华为社招16级待遇2020_2020年3月16日乌鲁木齐沙依巴克区发生3.5级地震简报
  7. 经典小游戏开发思路和算法之拼图(1)
  8. java怎样生成epub文件_如何使用java.util.zip进行epub
  9. 【解决】Yandex浏览器Bing搜索遭遇trovi.com劫持
  10. 自主开发新媒体,湖南卫视封杀网络转播权