在讲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 参数
来试试
怎么样?是不是很神奇,好好理解下
今天就讲到这里,第一天假期,大家节日快乐,我去做饭了。。。还没吃饭。。