Posted on 2009-04-20 01:42
Silver Wong 閱讀(395)
評論(1) 編輯 收藏
一、上節回顧
上次我們學習了變量,和一些基本的運算符的相關知識。這次我們要學習一下什么是邏輯。
btw:上次關于“+”的用法雖然最后的例子中用到了,可是沒有講。
- String str = "Hello Lilei!";
- ...
- 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語句
語法結構:
- if(條件表達式)
- {
- 語句塊;
- }
- else
- {
- 語句塊;
- }
拿例子說明問題
- boolean hitSuccess = false;
-
- if (hitSuccess == true) {
-
- System.out.println("打中了!!");
- } else {
-
- System.out.println("真可惜");
- System.out.println("沒打中");
- }
這下很清晰了吧。程序執行到if (hitSuccess == true)的時候,就會進到括號里進行判斷,如果括號里的條件成立,那么執行下面的語句塊1,如果條件不成立則執行else里面的語句塊2。
if()里的判斷條件可以是多種多樣的。
- int i=100;
- int j=50;
- int k=i+j;
- if(k>200)
- {語句塊1}
- else if(k<100)
- {語句塊2}
- else if(k==150)
- {語句塊3}
- else
- {語句塊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),取并集。
因此上述代碼我們還可以寫成:
- int i=100;
- int j=50;
- int k=i+j;
- if(k>200 || k<100)
- {語句塊1}
- else if(k>=100 && k<=200)
- {語句塊2}
if-else我們就說到這里。條件判斷的語法其實還有一個——switch語句。如果以后需要用到,再討論。講完了條件判斷,再來講講循環。
三、循環語句
我們做游戲,要在屏幕上生成一群怪的話,總不能自己一個個手工為每個怪都編寫一段代碼,讓它們顯示在屏幕上吧,那樣子要死人的!!!
[size=medium]1、while循環語句
上面可以看出,while循環的語法結構很簡單。下面我們來用while循環語句模擬一下生成10個怪。
- int i = 0;
- while (i < 10) {
- System.out.println("我是怪" + i + ",我出來了,哈哈哈!");
- i++;
- }
咱們還是一行一行的來看(總共也沒幾行可以看-_-!)。
這個 i ,我把它稱為循環控制變量。
如果 i<10 那么進入循環體,開始重復執行里面的代碼。
- while (i < 10) {
- System.out.println("我是怪" + i + ",我出來了,哈哈哈!");
- i++;
- }
進入循環了總得退出啊,要不然代碼運行到里面就不出來了,就會變成死循環。這里就靠我們的小 i 來退出。還記得 i++; 吧。就是 i 自身加1。每執行一次循環 i 的值就加1。當 i 的值等于10的時候,那么便不再滿足 i<10 的條件,循環退出。
[size=medium]2、for循環語句
語法結構
- for(表達式1;表達式2;表達式3;)
- {
- 語句塊;
- }
還是用例子說話
- for(int i=0;i < 5;i++;)
- {
- System.out.println(i);
- }
對照上面,我們很容易發現:
表達式1 是用來聲明或初始化一個循環變量。(聲明變量i,初值為0)
表達式2 是循環控制條件。(滿足 i < 5 這個條件時,循環繼續,否則退出循環)
表達式3 是循環控制變量的自增漲。(每次循環體完成后,執行i++)
可以看出來,只是和while循環形式上不一樣,本質還是一樣的。
最后我們用一個“復雜”的例子來結束這一節。
我們的目的是在控制臺打印如下效果,大家可以先自己做著試試, 不看下面答案。
*
**
***
****
*****
提示:System.out.println()是換行打印。System.out.print()是不換行打印。
- package test;
-
- public class ForPro {
-
-
-
-
- public static void main(String[] args) {
- for (int i = 0; i < 5; i++) {
- for (int j = 0; j <= i; j++) {
- System.out.print("*");
- }
- System.out.println("");
- }
- }
- }
由于J2SE的內容太多,而來這里看的人多少都有些編程的底子,這樣詳細的講解沒必要。所以我決定提前結束掉掃盲篇的內容。關于后面還要用到的數組以及OOP的思想,我在這就不多講了,需要了解的可以自己去找點資料看看。下次就進入J2ME的基礎篇了。
本文出自Silver Wong的博客:http://www.tkk7.com/conanwsz