第五章:多重循环及程序调试

2023-10-27

第五章:多重循环及程序调试

一,什么是多重循环,

多重循环:一个循环体内又包含另一个完整的循环结构

​ 例子:

while(循环条件1){
     //循环操作1
     while(循环条件2){
          //循环操作2
     }
}
do{
    //循环操作1
    do{
        //循环操作2
    }while(循环条件2);
}while(循环条件1);

for(循环条件1){
     //循环操作1
     for(循环条件2){
          //循环操作2
     }
}
while(循环条件1){
      //循环操作1
      for(循环条件2){
   	        //循环操作2
	  }
}

​ 类似于上面代码这样的结构,称为多重循环,他们都分为外层循环和内层循环。

二,多重循环的使用

注意:

  • 各循环可互相嵌套
  • 一般不超过三层
  • 外层循环变量变化一次,内层循环变量要变化一遍

​ 来个案例用一下就知道了:

使用双重循环输出九九乘法表:

public class practice1 {
	public static void main(String[] args) {
		for(int i=1;i<10;i++){
			for(int j=1;j<=i;j++){
				System.out.print(i+"+"+j+"="+(i*j)+"\t");
			}
			System.out.println();
		}
	}
}

在这里插入图片描述

三,能影响循环结构语句

三个影响循环结构的语句:

  • break
  • continue
  • return
1. break

break我们在switch语句中已经见到过了,在循环中使用break,后面的代码将不会进行,直接跳出当前循环。

//描述4000米长跑比赛,我在第八圈不能坚持了,我想弃权
for (int i = 0; i<10; i++) {
      //跑4000米;
		if ( 不能坚持 ) {
         break;     //退出比赛
		 }
}
2. continue

continue和break类似,后面代码也不会执行,但是会跳出本次循环,进入下次的循环中。

循环录入Java课的5位学生成绩,统计分数大于等于80分的学生比例

1.通过循环,获得
分数大于等于80分的学生人数num
2.判断:如果成绩<80,
不执行num++,直接进入下一次循环

for(int i=0;i<5;i++){
    int score = sc.nextDouble();
    if(score<0){
        continue;
    }
    num++;
}
3. return

return是结束当前方法,如果是放到主(main)方法里面,就会结束程序。

for(int i=0;i<num;i++){
    for(int j=0;j<num;j++){
        if(条件){
            return}
    }
}

​ 这里的条件判断如果成立,就会直接程序结束。

4.小结

对比breakcontinue:

使用场合:

  • break常用于switch结构和循环结构中
  • continue一般用于循环结构中

作用(循环结构中):

  • break语句终止某个循环,程序跳转到循环块外的下一条语句
  • continue跳出本次循环,进入下一次循环
  • 双重循环亦如此

return:结束当前方法的执行并退出,返回到调用该方法的语句处

四,程序调试

​ 我们在学完循环之后呢,我们代码就有了一定的复杂性,编写程序过程中有时出现错误,但不好发现和定位错误,有没有好的方法呢?通过代码阅读或者加输出语句查找程序错误,当程序结构越来越复杂时,需要专门的技术来发现和定位错误,就是“程序调试”,所以我们接下来学习程序调试。

int i = 1;
System.out.println("程序调试演示,注意观察i的值:");
while(i < 5){
	System.out.println(i);
	i++;
}

​ 在eclipse中我们点击debug(虫子标识)后,有三个快捷键

  • F 5:逐步进行
  • F 6:跳过方法,直接拿到返回值,逐步进行
  • F 7:进入方法后使用,跳出方法。

五,总结

1.双重循环中,外层循环变量与内层循环变量的关系是什么?

  • 外层循环变量控制行,内层循环变量控制列。

2.在循环中,break的作用是什么?

  • 跳出当前循环

3.在循环中,continue的作用是什么?

  • 跳出此次循环,进入下次循环

4.如何进行程序调试?

  • 在eclipse中我们点击debug(虫子标识)后,有三个快捷键:F5,F6,F7
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第五章:多重循环及程序调试 的相关文章

随机推荐

  • 嵌入式软件硬件比例_嵌入式软件硬件常识

    嵌入式软件开发人员 硬件常识 底层地驱动或内核开发人员通常要跟硬件紧密地配合 协同完成工作 硬件电路地设计很 大程度上决定驱动代码地代码地编写 一个熟练地底层开发人员具备硬件开发知识 本节内容 硬件开发流程 硬件识图 软件控制硬件方法 嵌入
  • 【算法/剑指Offer】在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

    Q 在一个排序的链表中 存在重复的结点 请删除该链表中重复的结点 重复的结点不保留 返回链表头指针 例如 链表1 gt 2 gt 3 gt 3 gt 4 gt 4 gt 5 处理后为 1 gt 2 gt 5 struct ListNode
  • 错误处理-VS2019+CUDA10.1 新建项目里没有CUDA选项

    强推这篇文章 VS2017 CUDA9 2 新建项目里没有CUDA选项 佛系随心记 CSDN博客 有几点问题在此注释 1 没有Microsoft Visual Studio文件夹 解决方法 如图所示 2 找不到extension vsixm
  • 单片机查表实验c语言,单片机 查表程序设计实验

    查表程序设计实验 2 4 查表程序设计实验 2 4 1 实验目的 学习查表程序的设计方法 熟悉 51 的指令系统 2 4 2 实验设备 PC 机一台 TD NMC 教学实验系统 或 TD PIT 教学实验系统 TD 51 系统平台 或 TD
  • cab补丁包离线安装命令

    dism online add package packagepath xxxxx xxxxx xxxx xxxx Windows10 0 KB4471329 x64 cab 因为补丁在共享盘 自己替换xxx的内容以及补丁名字
  • this.$router.options.routes

    this router options routes 可以拿到初始化时配置的路由规则 this route 可以拿到当前路由信息 包括路由路径 参数0
  • zookeeper 系列(2) 启动流程

    虽然天天在看源码 但很久没有写博客了 从这周开始写点系列 不写文章 就整些流程图吧
  • Linux部署Seata详细过程记录

    Seata服务搭建 Seata官方文档地址 Seata安装包下载地址 依赖版本说明地址 SpringCloudAlibaba版本对应组件版本说明 详细参考官网文档 当前使用Spring cloud alibaba对应的seata版本为v1
  • 中国需要怎样的智慧城市联盟?中外41家联盟组织大起底

    自2009年 智慧地球 概念的提出 智慧城市 作为支撑该系统性设想的组成部分 正在全球范围内 被多数发达和发展中国家所接受并在城市层面开展实践 开展智慧城市规划建设是数字城市 平安城市 数字化 信息化和物联网等 的升级性目标 为有效保障智慧
  • 1.3.6 手写数字识别之训练调试与优化.md

    文章目录 概述 一 计算模型的分类准确率 二 检查模型训练过程 三 加入校验或测试 四 加入正则化项 4 1 过拟合现象 4 2 导致过拟合原因 4 3 过拟合的成因与防控 4 4 正则化项 五 可视化分析 5 1 使用Matplotlib
  • 2022最新软件测试八股文,能不能拿心仪Offer就看你背得怎样了

    前言 鉴于目前测试就业越来越严峻 内卷也成了测试领域的代名词了 我的一个HR朋友告诉我 由于门槛较低 现在普通测试岗 偏功能 的投递比已经将近100 也就是一个岗位差不多有百分简历投进来 所以现在还想从事软件测试行业的小伙伴们 想要心仪的工
  • qt QTimer 提示 不能在另外一个线程停止

    发送 信号 停止 timer 提示 QObject killTimer Timers cannot be stopped from another threadQObject QObject Timers cannot be stopped
  • Spring之Ioc工作流程

    springIoc容器创建流程 在AbstractApplicationContext refresh 中描述了创建ioc的过程 1 前期准备校验参数等 prepareRefresh 2 创建beanFactory工厂对象 还把配置文件中的
  • sort函数数组排序(c++方法)

    sort函数的调用需要头文件 include 从小到大排 例如 a 50 2 3 5 1 1 想让它按照从小到大的顺序排列 那么就可以这么写 sort a a 5 然后数组就会变成 1 1 2 3 5 具体代码如下 include
  • 小菜鸡刷CTF

    一个小菜鸡的CTF成长史 本人小菜鸡一枚 刚入门CTF 不对 应该是脚刚刚沾上了CTF的边边 就只是在刷攻防世界中的题目 无奈脑子太笨 记性太差 只好将题目整理下来 代码多有借鉴 求勿喷 新手练习 题目一 base64 题目来源 poxlo
  • Kotlin手写RxJava变换符

    Kotlin手写RxJava变换符 本文链接 点击这里进入 1 核心点 中转站存储之前的数据 2 三行代码实现RxJava 使用create map observer fun main create构造出RxJavaCore存放 lambd
  • Open3D 入门教程

    文章目录 1 概述 2 安装 3 点云读写 4 点云可视化 4 1 可视化单个点云 4 2 同一窗口可视化多个点云 4 3 可视化的属性设置 5 k d tree 与 Octree 5 1 k d tree 5 2 Octree 5 2 1
  • Redis密码相关知识总结

    背景 工作中 生产环境的Redis集群都是无密码的 存在安全隐患 现在需要对Redis集群进行密码设置 相关工作总结如下 基础知识 requirepass redis实例自身的连接密码 当客户端请求连接当前Redis服务器时 需要使用的密码
  • 【Yarn】Yarn 是如何提交 MapReducer程序到Yarn集群的

    文章目录 1 概述 3 1 案例 3 2 waitForCompletion 3 3 submit 3 4 connect 3 5 submitJobInternal 3 6 submitJob 3 7 createApplicationS
  • 第五章:多重循环及程序调试

    第五章 多重循环及程序调试 一 什么是多重循环 多重循环 一个循环体内又包含另一个完整的循环结构 例子 while 循环条件1 循环操作1 while 循环条件2 循环操作2 do 循环操作1 do 循环操作2 while 循环条件2 wh