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

从零开始学java-(六)for ZCL:java流程控制

 
阅读更多

     在讲java的流程控制之前,先来讨论下上一篇提出的问题,我们写的java程序的格式问题,其实简单的来说就是缩进问题,不知道大家发现了没有,同一级的所尽量是相同的,是左对齐的,不同级的,缩进不同,缩进多的从属于缩进小的;来看个代码,具体来分下

 

public class codeStyle{
	public static void main(String [] args){
		int varInt = 10;
		System.out.println("intVar  = " + varInt);
	}
}

   我们来看,codeStyle后面跟随这一对大括号{}  ,可以说是类的body;意会下就好,别非要翻译成身体。。。说起来太吓人了。

 

类里面有个main方法,这个方法就有一个tab缩进,这个tab在键盘最左侧,自己找下,别一直敲空格。敲坏了。这个main方法从属于codeStyle这个类,在main方法内部,定义了一个int类型的变量,比方法多一个缩进,他从属于main方法,这种风格可能需要多按一些tab键,但是看起来就很清晰,一看就知道是怎么回事儿,这只是几行,如果代码很多,没有缩进的话,那么将是一场噩梦。。。我们来体验下coding hell

 

public class codeStyle{
public static void main(String [] args){
int varInt = 10;
System.out.println("intVar  = " + varInt);
}
}

 

 

同样的代码,规矩的缩进,让我们清晰可见程序的结构,和意图,而下面完全左对齐的格式,其实跟没有格式没区别。。看起来就头疼。是不是?

所以说编程基本原则一,注意根据从属关系来进行缩进,保证程序的结构清晰,明朗;

我们的实例代码很简单,所以我们没有任何注释依然知道这段代码是干嘛的,如果是一个几百行,几千行的代码,没有一行注释的话,会如何呢?不知道别人什么反应,我是肯定要骂娘的!为什么?因为即使是开发者本人过几月都不可能完全记得代码的逻辑,

所以说编程基本原则二,要有注释,准确的注释有助于提高代码的可读性,以后不管是自己还是别人,都能快速的了解这段代码的功能,为人即使为己;

如果是我们代码有了准确的缩进,有了明确的注释,就可以了么?答案是否定的,我们来看个例子

  

public class CodeStyle{
	public static void main(String [] args){
		int varInt = 10;
		System.out.println("intVar  = " + varInt);
		double varDoule = 10.0;
		System.out.println("varDoule  = " + varDoule);
		char varChar = 'A';
		System.out.println("varChar  = " + varChar);
		int varInt = 10;
		System.out.println("intVar  = " + varInt);
		double varDoule = 10.0;
		System.out.println("varDoule  = " + varDoule);
		char varChar = 'A';
		System.out.println("varChar  = " + varChar);
		int varInt = 10;
		System.out.println("intVar  = " + varInt);
		double varDoule = 10.0;
		System.out.println("varDoule  = " + varDoule);
		char varChar = 'A';
		System.out.println("varChar  = " + varChar);
		int varInt = 10;
		System.out.println("intVar  = " + varInt);
		double varDoule = 10.0;
		System.out.println("varDoule  = " + varDoule);
		char varChar = 'A';
		System.out.println("varChar  = " + varChar);
	}
}

   看着这段代码。头晕了没?晕了就对了,一行连着一行,我们建议采取的做法是不同的小模块之前留一行空白,再来看看,空行之后的效果: 

public class CodeStyle{
	public static void main(String [] args){
		int varInt = 10;
		System.out.println("intVar  = " + varInt);

		double varDoule = 10.0;
		System.out.println("varDoule  = " + varDoule);

		char varChar = 'A';
		System.out.println("varChar  = " + varChar);

		int varInt = 10;
		System.out.println("intVar  = " + varInt);

		}
}

   空间有限,就不全写了,这样看起来是不是很清晰了?

 

所以说编程原则三就是不同模块的代码之前留一个空行,明确作出区分,不要混在一起,增加大家眼睛的负担;

不知道大家注意到了没有,我使用的实例,名字基本都不一样,变量名基本都不一样,而且类名翻译成中文和我们要讲的内容基本保持一致,而且类名首字母大写,方法名,变量名首字母小写,名字由多个单词组成的时候,采用驼峰式的写法,所谓驼峰,就是每个单词的首字母大写;因为都是大写或者都是小写的话,你一样会崩溃的,根本读不出来。

所以说编程原则四就是,类名首字母大写,方法名,变量名首字母小写,之后采用驼峰式写法;

编程的基本原则就说这么多,还有很多的编程风格约定规则,需要大家自己去了解,执行,我就不一一列举了,下面我们就进入正题,讲一讲java的流程控制;

什么是流程控制呢?流程就是做一件事情的的顺序,那么流程控制就是对做事情的顺序做一个有效的控制;

我们来一一介绍,

控制语句一,条件语句;

我们在生活中会经常出现这样的话:如果怎么怎么样,就怎么怎么样,否则就怎么怎么样!

才java编程中这就是最基本的条件语句;

标准格式如下:

if(条件表达式){

     怎样怎样;

}else{

     怎样怎样;

}

 

这个怎样怎样就是满足条件时我们想要做的事情,不满足的时候我们要做的事情;来个例子来瞧瞧

 

public class ProcessControl{
	public static void main(String [] args){
		int varInt = 10;
		int varSmallInt = 5;
		if(varInt > varSmallInt){
			System.out.println("varInt 大于 varSmallInt ");
		}else{
			System.out.println("varInt 小于 varSmallInt ");
		}
	}
}

   if里面是条件语句,用到了我们之前学过的逻辑运算符,就像我们说的汉语一样,如果 (条件成立的话),就执行大括号内的语句,else,就是否则的话,就执行else后面大括号里面的语句;

 

执行结果不言而喻,来看看

 

 

这是标准格式,有个时候我们只需要一部分,仅仅的是如果条件成立,我们就执行写动作,不是的话,不管了,不处理了;

来个例子,来试试,

 

public class ProcessSimple{
	public static void main(String [] args){
		int varInt = 10;
		if(varInt > 3){
			System.out.println("我就想执行这么一句");
		}
	}
}

 

 

执行结果没有什么特殊的;

 

来提个问题,汉语表述是如下:如果我的工资大于500小于1000,我就买一斤苹果,如果我的工资大于1000小于2000,我就买两斤苹果,吃一斤,扔一斤,如果我的工资大于2000小于3000,我就买个表.....

这个貌似很复杂,我们之前了解的不能满足,因为他比较复杂,那么这种复杂的我们怎么处理呢?

来看看格式

if(条件1){

    执行1

}else if(条件2){

   执行2

}else if(条件3){

   执行3

}

 

看到了,重点就是这个else if,这就可以让我们满足多个条件,来看看例子

 

public class ProcessComplex{
	public static void main(String [] args){
		int salary = 600;
		if(salary > 500 && salary < 1000){
			System.out.println("我可以买一斤苹果");
		}else if(salary > 1000 && salary < 2000){
			System.out.println("我可以买两斤苹果,吃一斤,扔一斤");
		}else if(salary > 2000 && salary < 3000){
			System.out.println("我不用买苹果了,我买了个表");
		}else{
                        System.out.println("这下牛了,可以买两个表了!!");
                }
	}
}

 看看结果,如何,和我们想象的一样吧!

 

 

  

 不过是不是有哪里不对劲呢?我们的程序,除了该代码,貌似我们写的判断条件都白写了。没任何悬念啊?

那么,给大家来个小方法,之前说过,java的应用程序必须要有main方法,注意是应用程序,因为main方法是java 程序的入口,那么作为入口,要是没点特殊的那就太没前途了

这特殊的就是args 这个args是String类型的一个数据,String[]大家先简单理解为字符串的集合就行了,

就是运行时传入的参数,传入的方法,等下告诉你,先来看看程序,我们是怎么用的

 

public class ProcessComplex{
	public static void main(String [] args){
		int salary = Integer.parseInt(args[0]);
		if(salary > 500 && salary < 1000){
			System.out.println("我可以买一斤苹果");
		}else if(salary > 1000 && salary < 2000){
			System.out.println("我可以买两斤苹果,吃一斤,扔一斤");
		}else if(salary > 2000 && salary < 3000){
			System.out.println("我不用买苹果了,我买了个表");
		}else{
			System.out.println("这下牛了,可以买两个表了!!!");
		}
	}
}

 

  这里有个Integer.parseInt() 这个方法是将字符串转换成int数据,先不做详细解释,args[0]就是取数组的第一个元素,数据的下标是从0开始的,,所以第一个是0;

使用的时候,是java 应用程序名称  参数值

比如我们的程序是 ProcessComplex,我们运行的时候是 java ProcessComplex

加参数就是 java  ProcessComplex  参数

来试试

  

 

怎么样?是不是很神奇,好好理解下

今天就讲到这里,第一天假期,大家节日快乐,我去做饭了。。。还没吃饭。。

 

 

  • 大小: 12.5 KB
  • 大小: 13.1 KB
  • 大小: 9.2 KB
  • 大小: 38.9 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. **行程限位参数**: - 第一至第三行程限位的正向和反向值:定义行程边界,...

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

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

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

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

    ZigBee中级培训.rar

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

    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)。...

    CRM GENIL模型开发

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

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

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

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

    蓝桥杯单片机——09 定时器设计秒表,这个是我学习蓝桥杯单片机时,通过B站上的各种视频资源整理出来的代码。...相关链接《蓝桥杯单片机竞赛各模块总结》:https://blog.csdn.net/ZCL__/article/details/109250325

    ZCL说明文档

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

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

    S7按键控制三种模式切换 模式一:数码管显示-1-HELLO 模式二:数码管前三位显示 -2- ,最后三位显示要倒计时的数。S6按下数字加一,S5按下数字减一。S4为清零按键(数字上限120,下限0) 模式三:数码管前三位...

    ABAP开发资料,基础学习资料,有兴趣的了解.pptx

    - **READ**:从屏幕读取用户输入。 - **ALV**(Application List Viewer):用于创建复杂的表格输出。 #### 三、ABAP高级特性 ##### 3.1 面向对象编程 ABAP支持面向对象编程,包括类的定义、继承、封装等特性。...

    zigbee-cluster-library-specification

    - 示例:照明控制簇、温度测量簇等。 3. **属性 (Attributes)** - 属性是簇中的数据项,用于表示设备的状态。 - 属性可以读取、写入或报告,具体取决于簇定义。 - 示例:温度传感器的当前温度值、灯泡的亮度...

    Java 生成pdf文件加盖公章图片,上传阿里云

    在Java开发中,生成PDF文件并添加公章图片是一项常见的任务,尤其在电子文档处理和企业自动化流程中。这里,我们探讨如何使用Java实现这一功能,并将生成的文件上传至阿里云存储服务。以下是一些关键知识点: 1. **...

    zigbee协议栈 支持各种不同硬件平台

    应用层还可以包含ZigBee设备对象(ZBO)和ZigBee簇库(ZCL),方便设备间的互操作性。 “支持各种不同硬件平台”意味着该ZigBee协议栈是跨平台的,能够适应各种类型的微控制器(MCU)。这通常通过抽象硬件接口实现,使得...

Global site tag (gtag.js) - Google Analytics