`
fox_mt
  • 浏览: 24027 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

从零开始学java-(六)for ZCL:java流程控制3-继续,中断,返回

 
阅读更多

      这几天比较忙,把这事儿耽误了,今天赶紧补上,上一篇我们留了三道作业题,别说是两道啊!我会桑心,因为有一道在文章里面,就是利用for循环来打印个99乘法表

直接上代码了

public class Nine {
	public static void main(String[] args) {
		for (int i = 1; i < 10; i++) {
			for (int j = 2; j < 10; j++) {
				if(i == 1 && j == 2){
					System.out.println("1*1 = " + 1 + " ");
				}
				System.out.println(i + "*" + j + " = " + (i * j) + " ");
			}
		}
	}
}

   来看结果



 

由于太长,我没有把全部的都截图出来,就出来这么多;

在分析之前提个小问题,大家回去自己试试,如果没有

if(i == 1 && j == 2){
	System.out.println("1*1 = " + 1 + " ");
}

 这段代码会如何?

如果 j 也从1 开始会如何?

这个就留给大家解决了,我们来稍微分析一下,首先就是打印的时候

System.out.println(i + "*" + j + " = " + (i * j) + " ")

在i * j之前我们先拼出了  i * j = 的字符串,仔细观察下,我们是怎么拼接的,直接用变量 + ""双引号里面的字符,这也是java中string类型数据,也就是字符串数据拼接的基本方法,大家可以自己尝试,这个并不陌生,

其他就没什么可说的,上一篇对于循环嵌套已经做过解释了;

 

来看第二题

利用while循环做100以内的加法,一直了三个变量

看代码

public class SumByWhile {
	public static void main(String[] args) {
		int i = 0;
		int index = 100;
		int sum = 0;
		while(i < index){
			i++;
			sum += i;
		}
		System.out.println("sum = " + sum);
	}
}

 每次执行循环的时候,i ++ ,从0开始,然后是1,2,3,4,5...我们定义了一个sum变量,是相加之和,一开始是0,我们只要把每次i的值加到sum上,sum = sum + i;就是可以了,还记得 i ++的另一种形式么?

i = i + 1;套到这里,那就是sum+ =i;然后直接打印就ok了,来看看结果


怎么样,结果一样么?

 

来看第三题,打印出100以内是3的倍数,但是不是5 和9的倍数的数字

提示上一篇也说了,看一个数是不是另一个数的倍数怎么看?  %这个符号是不是?这个符号是什么意思?

我直接上代码

 

public class while359 {
	public static void main(String[] args) {
		int i = 0;
		int index = 100;
		while(i < index){
			if(i % 3 == 0){
				if(i % 5 !=0 && i % 9 != 0){
					System.out.println("100以内3的倍数,但不是5 和9的倍数 = " + i);
				}
			}
			i++;
		}
	}
}

  循环我们已经知道了,这段代码的核心就是两个if的判断,大家好好研究了

 顺便来个问题,(i % 5 !=0 && i % 9 != 0)这里还可以怎么写?

来看结果



 

ok,习题已经讲完了,有问题可以留言!

 

来看看今天得内容

看标题就知道了,今天得内容是,继续,中断和返回

     在说继续之前,我们来说说中断,这两个概念是相对的,

中断,主要的应用场景就是强行退出循环和分支语句;

使用的方法就是一个单词,break,不过别忘了在单词后面加个分号,这样break;这就是一行代码了

我们来看个例子:

public class WhileBreak {
	public static void main(String[] args) {
		int i = 1;
		while(i <= 10){
			System.out.println("i = " + i);
			i++;
			if( i > 5){
				break;
			}
		}
		
	}
}

 先来猜一猜结果,根据上文说的,break是用来强制退出循环或者分支语句,我们这里是循环,

break在if条件语句里面,也就是说,当if语句满足条件是才会break,那么i > 5的时候就是条件满足了,

就退出循环了,那么5以后的数字还会打印出来么?

来看看结果



 怎么样,和我们猜想差不多吧,到了i =6的时候,发现i是但与5的,进入if条件语句的执行块,这个执行块的代码就是break,直接中断了循环,不会再继续下了;再来看两个变体

public class WhileBreakQueit {
	public static void main(String[] args) {
		int i = 1;
		while(i <= 10){
			i++;
			System.out.println("i = " + i);
			if( i > 5){
				System.out.println("退出!");
				break;
			}
			
		}
	}
}

 这段运行的结果和上一段略有不同,多了一行退出,自己来试试,

来看下面这个对应的例子

ublic class WhileBreakQueit {
	public static void main(String[] args) {
		int i = 1;
		while(i <= 10){
			i++;
			System.out.println("i = " + i);
			if( i > 5){
				break;
			}
			if(i > 5){
				System.out.println("退出");
			}
		}
	}
}

 这个例子我们加了一句话,当i > 5的时候,打印退出,这个例子,大家试验下,看看结果是什么?这个退出两个字能打印出来么?

这个结果我就不截图了,因为答案就是没打印出来。原因呢,因为他的上面有个break;当i > 5的时候,先执行了break,中断了,下面这个条件语句虽然成立,但是没有执行;

由此可以,这个中断是直接中断退出,循环中在中断语句之后的代码不会被执行;

还有一点,我们发现中断语句都是和条件语句一起使用的,因为只有特定的条件我们才希望他中断,否则的话。。就没有循环了,进来直接就中断了!

 

接下来我们说说继续语句

继续语句和中断语句有些类似的地方,他也可以说是一种中断,但又不完全是中断,当我们使用continue的时候推出本次循环,注意是本次,既然他也是一种中断的话,那么中断之后循环体中的代码。。。什么后果我就不说了。

继续语句我们就用continue

来看个例子

public class ForContinue {
	public static void main(String[] args) {
		for (int i = 1; i < 10; i++) {
			if(i % 2 ==0 ){
				continue;
			}
			System.out.println("i = " + i);
		}
	}
}

 

这段代码,是说,当时2的倍数的时候continue,就是跳出本次循环从新开始下次循环,那么我们打出来的是哪些数字呢,掰掰手指头数数,我们来看结果



 当当当。。。奇数,因为每次偶数的时候我们都是continue了,continue的时候直接从头开始,在continue之后的代码,我们都不管了,直接从头再来;这就是继续语句;

他和break有些类似,又有些不同;注意区分

 之前提到过 switch case语句,如果记忆力好的同学应该记得每个case后面都有一个break,已保证执行完当前case之后,就会跳出分支语句;这里就不单独写例子了,大家可以回忆下。

 

接下来我们来说说返回语句;

返回语句就是在执行程序的过程中跳转到另外一个程序,一般返回语句用在子程序或者程序的方法中,注意,我们在使用return的时候可能是希望返回某个值,也可能不希望程序继续执行,所以才return,这就跟continue和break有一些类似,只是return可以不在循环或者分支中使用,来两个例子瞧瞧

 

public class ReturnMethod {
	public static void main(String[] args) {
		ReturnMethod rm = new ReturnMethod();
		rm.setIntValue(4);
		rm.setIntValue(6);
		int returnValue = rm.getIntValue(6);
		System.out.println("returnValue  = " + returnValue );
	}

	public void setIntValue(int index){
		System.out.println("--setIntValue--begin");
		if(index > 5){
			return;
		}
		System.out.println("--setIntValue--end;index = " + index);
	}

	public int getIntValue(int index){
		return index * 10;
	}
}

   这个例子略微复杂,我们一步一步的看,首先new了一个ReturnMethod,为什么要new呢?因为我的main方法是static的,但是我们想在main方法中想调用的setIntValue和getIntValue不是static的,那么我们只能在main方法中构造出来ReturnMethod对象, 然后再使用这个对象的相应的方法,还有一种方式,不用new对象,也可以调用这两个方法,只是要对这两个方法做一些修改,怎么改就是今天得作业了。。。好好考虑下,static这个关键词

 

我们看setIntValue这个方法,传进去一个int型的参数,方法声明上这个void代表没有返回值,再看方法内部,第一句是打印出来这个方法开始了,第二部分是if条件语句,如果index大于5就用我们刚刚学的返回语句return;

最后一句是打印,这个方法结束了

 

第二个方法,方法声明上有个int,代表返回值是int类型的数据,方法中就一句话,return index *10也就是说,返回index的10倍;我们在main方法中接受了这个返回值,并打印了出来,如果我们没有接受这个返回。。也不用多解释了,给你东西你要,那么这个东西你就没有。。

 

在main方法中,我们调用了两次setIntValue方法,给了不同的参数,来猜猜打印出来的结果是什么?

来看结果



 

我们来分析一下,第一次调用setIntValue我们的参数是4,小于,没有执行返回语句,所以第一次的时候打印了开始,结束和index的值;第二次调用的时候,我们给的参数是6,比5大,那么会进入条件语句块,然后执行return,这个时候结束和index的值还会打印出来么?从结果看,没有打出来,原因就是刚才讲到了,返回之后后面的代码不会再执行了;那么不加if行不行呢?你可以动手试试,看看编译器同意不.....

执行了两次setIntValue之后,我们调用了getIntValue并且接受了返回值,打印出来,和我们猜想的应该没有太大的区别,就不多解释了

怎么样,这个return语句还是比较简洁的吧?

 

over,今天就到这里;记得今天有一道作业题哦!!!

 

 

 

 

  • 大小: 70.3 KB
  • 大小: 20.2 KB
  • 大小: 8.7 KB
  • 大小: 8.9 KB
  • 大小: 13.3 KB
  • 大小: 19.5 KB
分享到:
评论

相关推荐

    从零开始学习Z-Stack

    现在,我们将从零开始,深入探讨Z-Stack的相关知识点。 1. **Z-Stack的基础概念** - **Z-Stack架构**:Z-Stack通常由设备层、网络层和应用层构成,每一层都有特定的任务和功能,确保设备之间的高效通信。 - **...

    Z-Stack ZCL API.PDF

    Z-Stack ZCL API 是德州仪器(Texas Instruments, 简称TI)发布的一份技术文档,主要涉及ZigBee技术中的ZigBee Cluster Library(ZCL)API。ZigBee是一种基于IEEE 802.15.4标准的无线通信协议,常用于个人区域网络,...

    ISE IP核使用说明

    这些IP核组件通常被集成在FPGA(Field Programmable Gate Array,现场可编程门阵列)设计中,以简化硬件设计流程并加速开发。以下是对ISE IP核使用说明文档中提到的一些核心知识点的详细解释: 1. 除法器(Dividers...

    bekko:ZigBee 应用层(APS、ZCL、ZDP)Java 实现

    纯 Java ZigBee 应用程序框架 Bekko提供用于开发 ZigBee 应用程序的 Java API,并允许用户应用程序与标准 ZigBee 设备进行通信。 与其他“XBee API Java-Wrapper”不同,Bekko 具有 ZDO/ZDP 实现和标准化的 APS 数据...

    Z-Stack ZCL API

    ### Z-Stack ZCL API 知识点解析 #### 一、引言 ##### 1.1 目的 本文档旨在提供Z-Stack ZigBee Cluster Library (ZCL) API 的详细介绍,帮助开发者理解并利用这些API进行ZigBee设备的应用程序开发。 ##### 1.2 ...

    The document was created with Spire.PDF for Java

    标题 "The document was created with Spire.PDF for Java" 提供了一个关键信息,即文档是使用Spire.PDF for Java工具创建或处理的。Spire.PDF for Java是一款由E-iceblue公司开发的PDF库,它允许Java开发者在应用...

    日本fanuc system parameter.doc

    - ZPR和ZCL:手动回零后自动设定工件坐标系及是否取消局部坐标系。 - 第一至第四参考点的坐标值:设定参考点的位置,便于工件定位。 5. **行程限位参数**: - 第一至第三行程限位的正向和反向值:定义行程边界,...

    6. ZigBee3.0 基于ZCL通信——开关控制 串口地址控制switch.zip

    在“ZigBee3.0 基于ZCL通信——开关控制 串口地址控制switch”的项目中,重点是利用ZCL库实现对开关设备的控制。这通常涉及到以下几个关键技术点: 1. **OSAL (Operating System Abstraction Layer)**:OSAL是TI...

    生成数字的全局唯一Id.zip

    1. **时间戳**(41位):从2015年1月1日(UTC/GMT的00:00:00)开始至未来的毫秒数。这部分可以表示大约69年的时间,足以覆盖大部分业务场景。 2. **工作节点ID**(10位):用来区分不同的工作节点,可以配置为数据...

    ZigBee中级培训.rar

    - 应用层(APL):讲解ZigBee应用框架,包括ZigBee PRO和ZigBee Cluster Library(ZCL),以及如何实现自定义应用。 3. **ZigBee网络构建** - 设备角色:节点类型如协调器、路由器和终端设备的角色和职责。 - ...

    ZCL说明文档

    ZigBee Cluster Library(ZCL)是用于ZigBee设备之间通讯的一套协议集合,它定义了一组标准的cluster(群集),允许ZigBee设备进行更为细致和高效的数据交换。ZCL的文档为开发者提供了如何实现和使用ZigBee群集的...

    CRM GENIL模型开发

    #### 二、开发流程详解 ##### 1. 创建自定义模型类 - **T-Code**: 使用SE24进行操作。 - **类名**: ZCL_CRM_GENIL_QUERY。 - **超类**: CL_WCF_GENIL_ABSTR_COMPONENT。 - **目的**: 定义一个自定义的组件类来支持...

    ist的matlab代码-ATC-Best-Practice-Guide:ABAP测试驾驶舱最佳实践指南

    所有测试类的类别为ZCL_CI_CATEGORY_DSAG 。 ZCL_CI_TEST_DSAG_PRETTY_PRINT 用于检查Pretty Print是否已应用于源代码的类。 ZCL_CI_TEST_COMP_PROCS 用于执行各种基于代码的测试的类(有关详细信息,请参见docu)。...

    蓝桥杯单片机——09 定时器设计秒表.rar

    J5接2、3,利用定时器T0、数码管模块和2个独立按键设计秒表: 1.显示格式: 分-秒-0.05秒(即50ms) 08-26-18:8分26秒900毫秒 2.按键均为按下有效: 独立按键S4:暂停/启动 独立按键S5:清零 相关链接《蓝桥杯单片机...

    abap-openapi-client:ABAP中的ABAP OpenAPI客户端生成器

    注意:生成的代码当前使用ZCL_OAPI_JSON,建议将实现复制到生成的全局类中的本地类 生成旨在在v702上运行 生成的客户端代码旨在在v702上运行 建筑/开发 prerequsites = 12+ 安装npm install npm test =运行单元...

    学习计划模板合集7篇.docx

    - **控制结构**:顺序、选择(if-else语句)、循环(for、while、do-while)等结构的编写。 - **函数和递归**:函数的定义、调用和递归函数的使用。 - **数组和指针**:一维数组的定义和使用,理解指针与数组之间的...

    蓝桥杯单片机——20 定时器.rar

    蓝桥杯单片机——20 定时器,这个是我学习...模式三:数码管前三位显示-3- 设定的数字开始倒计时,数字为0时蜂鸣器响。 相关链接《蓝桥杯单片机竞赛各模块总结》:https://blog.csdn.net/ZCL__/article/details/1

    zigbee-cluster-library-specification

    随着物联网技术的发展,ZCL将继续发挥关键作用,促进不同领域内设备的互联互通。 通过深入学习这份文档,开发者可以更好地理解ZigBee Cluster Library的核心概念和技术细节,从而设计出更加高效、可靠的物联网解决...

    Zigbee_ZCL_07-5123-07-ZigbeeClusterLibrary_Revision_7

    Zigbee是一种无线通信技术,用于创建小型个人局域网,主要用于自动化控制和远程监控领域。Zigbee技术的适用性和效率使其在智能家居、工业控制以及智能能源管理系统中得到广泛应用。Zigbee技术的关键之一就是Zigbee簇...

    Zigbee之ZCL概览

    ZCL的概念使得设备制造商能够更加专注于他们产品的核心功能,而不必从零开始构建复杂的通信协议。因此,对于任何想要深入了解ZigBee技术,特别是在设备控制和家庭自动化方面有应用需求的人来说,ZCL是一份难得的入门...

Global site tag (gtag.js) - Google Analytics