在上一篇中我们讨论了Java$cript的变量的各个细节,今天我们就来说说流程控制吧
![](http://online.whpu.edu.cn/blog/editor/images/emot/face15.gif)
流程控制是每一门编程语言必备的元素,不管他是面向过程还是面向对象。编程语言实际上就是程序员思想的流露,而一个人考虑问题的时候总是会按照一定的顺序来考虑,这些顺序怎样用编程语言来描述出来?这就是流程控制了。
学习C语言的时候 谭浩强(大家用的应该都是谭浩强那本C程序设计吧,反正03级的是,呵呵)说过:有三种流程 顺序,选择,循环。下面我们就按照这来讲述
顺序
顺序流程没有什么好说的,你的代码就是从上到下的执行,按照代码的位置执行。
var i = 1;
i = i +1;
alert(i);
上面三行代码就是按照1,2,3的顺序执行了
选择
人生有很多三岔口,所以程序也有很多分支,从上到下的程序就这样执行太没有意思了,玩游戏的时候从前到后,不变的思路也没有什么意思,所以程序设计师需要选择这种流程来让程序更精彩。
我们最常用的选择流程控制关键字是什么?是 if...else...
下面看看网上非常流行的一个代码:
if( 有车 ){
//嫁给你
}else if( 有房 ){
//嫁给你
}else{
//滚吧
}
这就是一个流程控制,而 有车,有房代表着一个表达式,这个表达式的结果要是一个布尔类型,也就是要么是,要么否,就像,你是否有车,是否有房一样,如果有则执行下面的语句,如果没有跳到下面一条,然后再进行判断,如果都不符合,那我们就拜拜吧,执行最后的一个else,这个语句应该非常好懂,基本上和英语字面意思一样。
但是对于if...else我想多说几句
第一,写if...else...的时候一定要注意括号,不要掉了括号,所以写的时候你写了一个左括号,马上写一个右括号,这样如果语句特别长的话就不容易出错了。
第二,如果if下面的语句只有一行的话你可以不用花括号,但是如果有多行你就要用花括号括起来了,不过我建议不管是几行都用花括号括起来
第三,写if...else的时候注意一下代码的缩进,用一些tab键,空格键,这样你的代码显得非常漂亮,而且易读。
第四,这个是关于一个代码优化的问题,一般写程序的时候不要把所有的事情交给计算机处理,如果你觉得在一般情况下那条if判断的条件发生的几率大些你就应该将这条提前,比如,你觉得大部分没有房,没有车 那么上面的代码就最好这样写:
if( 无房又无车 ){
//滚吧
}else if( 有房 ){
//嫁给你
}else if(有车){
//嫁给你
}
这样就不需要计算机还在哪里判断半天了,如果段代码是放在一个循环结构或者经常运行的话这将大大提高你的程序性能。
第五,if ....else...是可以嵌套的,也就是你判断了后还可以判断,比如 如果这个女的比较挑剔,如果你有房还要看你学历,那么就可以在 判断了有房后进一步判断。
if可以作选择判断,然后有人就记住了,常常看到有人的代码里有这样的代码片断:
if(..){
//....
}else if(..){
//...
}else if(...){
//...
}else if(...){
//...
}else{
//...
}
就是一串的if...else...,比如上面哪个例子,如果你的女友判断条件非常多,多大20多项,难道也要一串的这样写下来么,如果很不幸,你的条件到最后一个才满足,那么可怜你就一直在哪里回答否,否,否。。。有什么办法可以解决判断太多的情况?有,这就是switch,下面向看看switch的语法,还是以哪个例子:
switch(你的条件){
case "有房" : //嫁给你
break;
case "有车" ://嫁给你
break;
case "博士学历" : //嫁给你
break;
default : //滚吧
break;
}
看到上面的代码应该直到swich有什么意思了,选计算“你的条件”这个表达式的值,然后和下面case后面的常量一个个比较
我分几点对switch进行解释:
第一,switch后的表达式的值在Java$cript中可以是任意值,布尔类型,整型,字符串等等都可以。
第二,case后的可以是变量,可以是常量,也可以是表达式
以上两点注意,这与C语言的不同
第三,break关键字可以省略,如果省略了关键字,break关键字是停止这个switch执行的,如果省略了break关键字,那么就会一直执行下去到碰到下一个break,如果一直都没有碰到,那就一直到switch的尾部,这个要非常注意,正是这个经常引来问题,在后来的C#语言中强制使用break,如果break掉了编译器认为这是一个错误。
关于选择控制只有这两个了,你可以用这连个语句制造出无穷无尽的岔路,人生也将因为此而丰富多彩,也将因为此而坎坷。
循环
在程序中我们经常要循环的计算某一个值,比如攻击怪物的时候我们要循环的攻击,直到怪物的血耗尽的时候才离开 下面我们就以攻击怪物这个为例子,假如怪物的血为0则判断为怪物死亡,每次攻击怪物的血减一
while(怪物血 > 0){
//继续攻击
怪物血 --;
}
只要怪物的血还大于0我们就一直攻击
循环除了while还有for,
这个留到下一片继续吧,现在就到此为止吧,呵呵