游戏之道

文不在多 有用就行
posts - 5, comments - 14, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
一、上节回顾 
上次我们学习了变量,和一些基本的运算符的相关知识。这次我们要学习一下什么是逻辑。 
btw:上次关于“+”的用法虽然最后的例子中用到了,可是没有讲。 
Java代码 
  1. String str = "Hello Lilei!";    //声明str为字符串,初值为Hello Lilei!  
  2. ...  
  3. str += " I'm Hanmeimei!";   //+=运算符的效果等同于:str = str + " I'm Hanmeimei!";    

这次我们上次写到的一句代码。运行过的同学都很清楚“+”是用来连接两个字符串的。 
比如:"AAA"+"BBB",返回结果就是"AAABBB"。 
那么上述代码中str+=" I'm Hanmeimei!";就不难理解了。结果就是"Hello Lilei! I'm Hanmeimei!"。 
下面开始这次的内容。 

小知识:在Eclipse中,按下 Ctrl+Shift+F 可以让Eclipse自动为我们的代码排版。 

二、条件判断语句 
我们知道,JAVA语言是从程序的入口函数(public static void main())开始,逐行执行的。 
假如我们要有一个选择怎么办呢?比如上次说的,玩家打怪,打中跟没打中,结果显然是不一样的。if-else语句帮我们解决了这个问题。 

1、if-else语句 


语法结构:
Java代码 
  1. if(条件表达式)  
  2. {  
  3.    语句块;  
  4. }  
  5. else  
  6. {  
  7.    语句块;  
  8. }  

拿例子说明问题 
Java代码 
  1. boolean hitSuccess = false;                  //声明一个布尔型的变量  
  2.   
  3. if (hitSuccess == true) {                    //如果hitSuccess为真  
  4.               //语句块1  
  5.     System.out.println("打中了!!");          //输出“打中了”  
  6. else {                                     //如果hitSuccess不为真  
  7.               //语句块2  
  8.     System.out.println("真可惜");  
  9.     System.out.println("没打中");  
  10. }  

这下很清晰了吧。程序执行到if (hitSuccess == true)的时候,就会进到括号里进行判断,如果括号里的条件成立,那么执行下面的语句块1,如果条件不成立则执行else里面的语句块2。 
if()里的判断条件可以是多种多样的。 
Java代码 
  1. int i=100;  
  2. int j=50;  
  3. int k=i+j;  
  4. if(k>200)  
  5. {语句块1}  
  6. else if(k<100//else if用在if和else之间。满足了需要判断多个条件的需求。  
  7. {语句块2}  
  8. else if(k==150)  
  9. {语句块3}  
  10. else  //else是可选的,如果不需要做最后的判断,可以不写else。  
  11. {语句块4}  

我们读读上面的代码,很容易理解。 
如果 k>200 ,执行 语句块1 
如果 k<100 ,执行 语句块2 
如果 k==150 ,执行 语句块3 
如果 k的值都不满足上述条件,则执行语句块4。简单吧。 

注意,如果在一个if-else的结构中,有任意一个语句块被执行了,那么其它的就都不会被执行了。就是说 
if(k>100){...} 
else if(k>150){...} 
如果k的值为200,虽然两个条件都满足,但是当执行完了if(k>100){...}里面的语句块之后下面的else if就不会再被执行了。
 

大家可能奇怪,为什么是 k==150 ,而不是 k=150。 
因此这里我们还要引出一概念:判断比较符。 
> ,大于 
>=,大于等于 
< ,小于 
<=,小于等于 
这些都跟大家八岁学的意义一样。 
要注意一下的是 == 。这个符号的作用是比较左右两边是否相等。还记得我们上节中说到了 = 吗?对了,它叫赋值号。作用是把右边的表达示的结果赋给左边的变量,千万不要跟这个比较符搞混了。 

除了上述的符号,常用的还有: 
&& ,“与”——表示并且(and),取交集。 
|| ,“或”——表示或者(or),取并集。 
因此上述代码我们还可以写成: 
Java代码 
  1. int i=100;  
  2. int j=50;  
  3. int k=i+j;  
  4. if(k>200 || k<100)    //如果 k>200 或 k<100 执行语句块1  
  5. {语句块1}  
  6. else if(k>=100 && k<=200)    //如果 k>=100 且 k<=200 执行语句块2  
  7. {语句块2}  


if-else我们就说到这里。条件判断的语法其实还有一个——switch语句。如果以后需要用到,再讨论。讲完了条件判断,再来讲讲循环。 

三、循环语句 
我们做游戏,要在屏幕上生成一群怪的话,总不能自己一个个手工为每个怪都编写一段代码,让它们显示在屏幕上吧,那样子要死人的!!! 

[size=medium]1、while循环语句 
Java代码 
  1. while(条件表示式){  
  2.    语句块;  
  3. }  

上面可以看出,while循环的语法结构很简单。下面我们来用while循环语句模拟一下生成10个怪。 
Java代码 
  1. int i = 0;  
  2. while (i < 10) {  
  3.     System.out.println("我是怪" + i + ",我出来了,哈哈哈!");  
  4.     i++;     
  5. }  

咱们还是一行一行的来看(总共也没几行可以看-_-!)。 
Java代码 
  1. int i = 0;  

这个 i ,我把它称为循环控制变量。 
Java代码 
  1. while (i < 10) {循环体;}  

如果 i<10 那么进入循环体,开始重复执行里面的代码。 
Java代码 
  1. while (i < 10) {  
  2.     System.out.println("我是怪" + i + ",我出来了,哈哈哈!");  
  3.     i++;     
  4. }    

进入循环了总得退出啊,要不然代码运行到里面就不出来了,就会变成死循环。这里就靠我们的小 i 来退出。还记得 i++; 吧。就是 i 自身加1。每执行一次循环 i 的值就加1。当 i 的值等于10的时候,那么便不再满足 i<10 的条件,循环退出。 

[size=medium]2、for循环语句 
语法结构 
Java代码 
  1. for(表达式1;表达式2;表达式3;)  
  2. {  
  3.     语句块;  
  4. }  

还是用例子说话 
Java代码 
  1. for(int i=0;i < 5;i++;)  
  2. {  
  3.     System.out.println(i);  //结果是换行输出1 2 3 4 5  
  4. }  

对照上面,我们很容易发现: 
表达式1 是用来声明或初始化一个循环变量。(声明变量i,初值为0) 
表达式2 是循环控制条件。(满足 i < 5 这个条件时,循环继续,否则退出循环) 
表达式3 是循环控制变量的自增涨。(每次循环体完成后,执行i++) 
可以看出来,只是和while循环形式上不一样,本质还是一样的。 

最后我们用一个“复杂”的例子来结束这一节。 
我们的目的是在控制台打印如下效果,大家可以先自己做着试试, 不看下面答案。 

** 
*** 
**** 
***** 
提示:System.out.println()是换行打印。System.out.print()是不换行打印。 


Java代码 
  1. package test;  
  2.   
  3. public class ForPro {  
  4.   
  5.     /** 
  6.      * 不要看我,不要看我,不要看我。 
  7.      */  
  8.     public static void main(String[] args) {  
  9.         for (int i = 0; i < 5; i++) {  
  10.             for (int j = 0; j <= i; j++) {  
  11.                 System.out.print("*");  
  12.             }  
  13.             System.out.println("");  
  14.         }  
  15.     }  
  16. }  



由于J2SE的内容太多,而来这里看的人多少都有些编程的底子,这样详细的讲解没必要。所以我决定提前结束掉扫盲篇的内容。关于后面还要用到的数组以及OOP的思想,我在这就不多讲了,需要了解的可以自己去找点资料看看。下次就进入J2ME的基础篇了。


本文出自Silver Wong的博客:http://www.blogjava.net/conanwsz

评论

# re: 从“傻X”到牛X——扫盲篇(二)JAVA的基本语法(二)  回复  更多评论   

2009-04-21 09:49 by Stan
终于出来了。。

只有注册用户登录后才能发表评论。


网站导航: