学习要点

  • while循环
  • do-while循环
  • for循环

循环

什么是循环

循环的要素

while循环

语法分析

案例

老师每天检查小强的学习任务是否合格,如果不合格,则继续进行。

老师给小强安排的每天的学习任务为:上午阅读教材,学习理论部分,下午上机编程,掌握代码部分。

案例分析

  • 分析是否存在重复操作
  • 使用while循环实现
    1. 确定循环条件和循环操作
    2. 套用while语法写出代码
    3. 检查循环是否能够退出
  • 注意点:
    1. 从控制台输入字符串:Scanner的input()方法
    2. 字符串相等比较:”str1”.equals(“str2”)
    3. “==”能否比较字符串?new String(“str”)和”str”?

上机练习:完成本案例的代码实现

程序调试

  • 编写程序过程中有时也出现错误,但不好发现和定位错误,有没有好的方法呢?

解决方案一:阅读代码,增加输出语句

解决方案二:程序调试

  • 程序调试步骤:

  • 演示示例:使用while循环输出变量i,i<4,期望输出5个数字,调试。

上机练习:完成演示示例,掌握程序调试方法。

do-while循环

语法结构分析

问题

经过几天的学习,老师给王小强一道测试题,

让他先上机编写程序完成,

然后老师检查是否合格。如果不合格,则继续编写。……

问题分析

演示示例:代码实现

while循环和do-while循环的比较

语法不同

执行次序不同

初始情况不满足循环条件时

  • while循环一次都不会执行
  • do-while循环不管任何情况都至少执行一次

上机练习:完成学生信息管理系统主菜单的循环输入,输入错误可以继续输入,直到选择正确菜单,退出主菜单。(除了退出功能)。

for循环

为什么使用for循环

for循环语法结构

注意:for循环中表达式的用法,1参和3参支持多个表达式

continue和break用法与区别

  • continue:结束本轮循环,进入下一轮循环。
  • break:终止循环操作
  • break和continue只影响所在循环,不会影响到外层循环。如果要影响到外层循环,需要定义标签,实例代码如下:
public static void main(String[] args) {
outer://定义标签结束外层循环:定义在外层,同时要定义在循环语句前
for(int i=0;i<10;i++){
System.out.println("outter i:"+i);
for(int j=0;j<10;j++){
System.out.println("内层循环j:"+j);
if(j==2){
break outer;//结束外层循环 continue也可以使用标签 进入外层下一次循环
}
}
}
}

  

循环的嵌套结构

  • 典型三种循环都支持嵌套循环结构
  • 实际开发中,循环嵌套不要超过三重

上机练习:使用for循环输出1-100之内奇数之和。

上机练习:使用for循环输出九九乘法表。

上机练习:使用for循环输出等腰三角形(三角形的高自定义输入)。

上机练习:使用for循环输出菱形。

最新文章

  1. [Android]Android MVP&amp;依赖注入&amp;单元测试
  2. C#操作XML的通用方法总结
  3. 2、Runtime Area Data
  4. Yeo 17-ROI parcellation
  5. /MD, /MT, /LD (Use Run-Time Library)
  6. 微信支付:redirect-uri参数错误 的解决办法
  7. FTP搭建
  8. JS面向对象组件(三)--面向对象中的常用属性和方法
  9. centos 如何用 rsyslog 搭建本地日志服务(续1: omprog模块与php deamon的配合使用)
  10. SQL常用命令浅析
  11. VC++下使用SQLite数据库
  12. 理解JavaScript原型
  13. 【图文】如何在centos上安装tomcat
  14. 《javascript设计模式与开发实践》阅读笔记(14)—— 中介者模式
  15. @staticmethod和@classmethod
  16. spring boot 给返回值加状态 BaseData
  17. mabatis insert into on duplicate key
  18. 1259 整数划分 V2
  19. 别人的Linux私房菜(8)Linux磁盘与文件系统管理
  20. js实现抽奖

热门文章

  1. MySQL中的RAND()函数使用详解
  2. 关于spring boot打出的jar包在Linux中运行
  3. JDK8 Lamdba表达式转换成Map,value为null问题
  4. 20170407-ms
  5. Angular 项目开发中父子组件传参
  6. jmeter远程运行GUI多用户负载
  7. Vant入门
  8. AtCoder Grand Contest 003 E - Sequential operations on Sequence
  9. 1-20StringBuffer简介
  10. [已读]编写高质量代码 改善JavaScript程序的188个建议