一、上節(jié)回顧
上次我們學(xué)習了變量,和一些基本的運算符的相關(guān)知識。這次我們要學(xué)習一下什么是邏輯。
btw:上次關(guān)于“+”的用法雖然最后的例子中用到了,可是沒有講。
這次我們上次寫到的一句代碼。運行過的同學(xué)都很清楚“+”是用來連接兩個字符串的。
比如:"AAA"+"BBB",返回結(jié)果就是"AAABBB"。
那么上述代碼中str+=" I'm Hanmeimei!";就不難理解了。結(jié)果就是"Hello Lilei! I'm Hanmeimei!"。
下面開始這次的內(nèi)容。
小知識:在Eclipse中,按下 Ctrl+Shift+F 可以讓Eclipse自動為我們的代碼排版。
二、條件判斷語句
我們知道,JAVA語言是從程序的入口函數(shù)(public static void main())開始,逐行執(zhí)行的。
假如我們要有一個選擇怎么辦呢?比如上次說的,玩家打怪,打中跟沒打中,結(jié)果顯然是不一樣的。if-else語句幫我們解決了這個問題。
1、if-else語句
語法結(jié)構(gòu):
拿例子說明問題
這下很清晰了吧。程序執(zhí)行到if (hitSuccess == true)的時候,就會進到括號里進行判斷,如果括號里的條件成立,那么執(zhí)行下面的語句塊1,如果條件不成立則執(zhí)行else里面的語句塊2。
if()里的判斷條件可以是多種多樣的。
我們讀讀上面的代碼,很容易理解。
如果 k>200 ,執(zhí)行 語句塊1
如果 k<100 ,執(zhí)行 語句塊2
如果 k==150 ,執(zhí)行 語句塊3
如果 k的值都不滿足上述條件,則執(zhí)行語句塊4。簡單吧。
注意,如果在一個if-else的結(jié)構(gòu)中,有任意一個語句塊被執(zhí)行了,那么其它的就都不會被執(zhí)行了。就是說
if(k>100){...}
else if(k>150){...}
如果k的值為200,雖然兩個條件都滿足,但是當執(zhí)行完了if(k>100){...}里面的語句塊之后下面的else if就不會再被執(zhí)行了。
大家可能奇怪,為什么是 k==150 ,而不是 k=150。
因此這里我們還要引出一概念:判斷比較符。
> ,大于
>=,大于等于
< ,小于
<=,小于等于
這些都跟大家八歲學(xué)的意義一樣。
要注意一下的是 == 。這個符號的作用是比較左右兩邊是否相等。還記得我們上節(jié)中說到了 = 嗎?對了,它叫賦值號。作用是把右邊的表達示的結(jié)果賦給左邊的變量,千萬不要跟這個比較符搞混了。
除了上述的符號,常用的還有:
&& ,“與”——表示并且(and),取交集。
|| ,“或”——表示或者(or),取并集。
因此上述代碼我們還可以寫成:
if-else我們就說到這里。條件判斷的語法其實還有一個——switch語句。如果以后需要用到,再討論。講完了條件判斷,再來講講循環(huán)。
三、循環(huán)語句
我們做游戲,要在屏幕上生成一群怪的話,總不能自己一個個手工為每個怪都編寫一段代碼,讓它們顯示在屏幕上吧,那樣子要死人的!!!
[size=medium]1、while循環(huán)語句
上面可以看出,while循環(huán)的語法結(jié)構(gòu)很簡單。下面我們來用while循環(huán)語句模擬一下生成10個怪。
咱們還是一行一行的來看(總共也沒幾行可以看-_-!)。
這個 i ,我把它稱為循環(huán)控制變量。
如果 i<10 那么進入循環(huán)體,開始重復(fù)執(zhí)行里面的代碼。
進入循環(huán)了總得退出啊,要不然代碼運行到里面就不出來了,就會變成死循環(huán)。這里就靠我們的小 i 來退出。還記得 i++; 吧。就是 i 自身加1。每執(zhí)行一次循環(huán) i 的值就加1。當 i 的值等于10的時候,那么便不再滿足 i<10 的條件,循環(huán)退出。
[size=medium]2、for循環(huán)語句
語法結(jié)構(gòu)
還是用例子說話
對照上面,我們很容易發(fā)現(xiàn):
表達式1 是用來聲明或初始化一個循環(huán)變量。(聲明變量i,初值為0)
表達式2 是循環(huán)控制條件。(滿足 i < 5 這個條件時,循環(huán)繼續(xù),否則退出循環(huán))
表達式3 是循環(huán)控制變量的自增漲。(每次循環(huán)體完成后,執(zhí)行i++)
可以看出來,只是和while循環(huán)形式上不一樣,本質(zhì)還是一樣的。
最后我們用一個“復(fù)雜”的例子來結(jié)束這一節(jié)。
我們的目的是在控制臺打印如下效果,大家可以先自己做著試試, 不看下面答案。
*
**
***
****
*****
提示:System.out.println()是換行打印。System.out.print()是不換行打印。
由于J2SE的內(nèi)容太多,而來這里看的人多少都有些編程的底子,這樣詳細的講解沒必要。所以我決定提前結(jié)束掉掃盲篇的內(nèi)容。關(guān)于后面還要用到的數(shù)組以及OOP的思想,我在這就不多講了,需要了解的可以自己去找點資料看看。下次就進入J2ME的基礎(chǔ)篇了。
本文出自Silver Wong的博客:http://www.aygfsteel.com/conanwsz
上次我們學(xué)習了變量,和一些基本的運算符的相關(guān)知識。這次我們要學(xué)習一下什么是邏輯。
btw:上次關(guān)于“+”的用法雖然最后的例子中用到了,可是沒有講。
- String str = "Hello Lilei!"; //聲明str為字符串,初值為Hello Lilei!
- ...
- str += " I'm Hanmeimei!"; //+=運算符的效果等同于:str = str + " I'm Hanmeimei!";
這次我們上次寫到的一句代碼。運行過的同學(xué)都很清楚“+”是用來連接兩個字符串的。
比如:"AAA"+"BBB",返回結(jié)果就是"AAABBB"。
那么上述代碼中str+=" I'm Hanmeimei!";就不難理解了。結(jié)果就是"Hello Lilei! I'm Hanmeimei!"。
下面開始這次的內(nèi)容。
小知識:在Eclipse中,按下 Ctrl+Shift+F 可以讓Eclipse自動為我們的代碼排版。
二、條件判斷語句
我們知道,JAVA語言是從程序的入口函數(shù)(public static void main())開始,逐行執(zhí)行的。
假如我們要有一個選擇怎么辦呢?比如上次說的,玩家打怪,打中跟沒打中,結(jié)果顯然是不一樣的。if-else語句幫我們解決了這個問題。
1、if-else語句
語法結(jié)構(gòu):
- if(條件表達式)
- {
- 語句塊;
- }
- else
- {
- 語句塊;
- }
拿例子說明問題
- boolean hitSuccess = false; //聲明一個布爾型的變量
- if (hitSuccess == true) { //如果hitSuccess為真
- //語句塊1
- System.out.println("打中了!!"); //輸出“打中了”
- } else { //如果hitSuccess不為真
- //語句塊2
- System.out.println("真可惜");
- System.out.println("沒打中");
- }
這下很清晰了吧。程序執(zhí)行到if (hitSuccess == true)的時候,就會進到括號里進行判斷,如果括號里的條件成立,那么執(zhí)行下面的語句塊1,如果條件不成立則執(zhí)行else里面的語句塊2。
if()里的判斷條件可以是多種多樣的。
- int i=100;
- int j=50;
- int k=i+j;
- if(k>200)
- {語句塊1}
- else if(k<100) //else if用在if和else之間。滿足了需要判斷多個條件的需求。
- {語句塊2}
- else if(k==150)
- {語句塊3}
- else //else是可選的,如果不需要做最后的判斷,可以不寫else。
- {語句塊4}
我們讀讀上面的代碼,很容易理解。
如果 k>200 ,執(zhí)行 語句塊1
如果 k<100 ,執(zhí)行 語句塊2
如果 k==150 ,執(zhí)行 語句塊3
如果 k的值都不滿足上述條件,則執(zhí)行語句塊4。簡單吧。
注意,如果在一個if-else的結(jié)構(gòu)中,有任意一個語句塊被執(zhí)行了,那么其它的就都不會被執(zhí)行了。就是說
if(k>100){...}
else if(k>150){...}
如果k的值為200,雖然兩個條件都滿足,但是當執(zhí)行完了if(k>100){...}里面的語句塊之后下面的else if就不會再被執(zhí)行了。
大家可能奇怪,為什么是 k==150 ,而不是 k=150。
因此這里我們還要引出一概念:判斷比較符。
> ,大于
>=,大于等于
< ,小于
<=,小于等于
這些都跟大家八歲學(xué)的意義一樣。
要注意一下的是 == 。這個符號的作用是比較左右兩邊是否相等。還記得我們上節(jié)中說到了 = 嗎?對了,它叫賦值號。作用是把右邊的表達示的結(jié)果賦給左邊的變量,千萬不要跟這個比較符搞混了。
除了上述的符號,常用的還有:
&& ,“與”——表示并且(and),取交集。
|| ,“或”——表示或者(or),取并集。
因此上述代碼我們還可以寫成:
- int i=100;
- int j=50;
- int k=i+j;
- if(k>200 || k<100) //如果 k>200 或 k<100 執(zhí)行語句塊1
- {語句塊1}
- else if(k>=100 && k<=200) //如果 k>=100 且 k<=200 執(zhí)行語句塊2
- {語句塊2}
if-else我們就說到這里。條件判斷的語法其實還有一個——switch語句。如果以后需要用到,再討論。講完了條件判斷,再來講講循環(huán)。
三、循環(huán)語句
我們做游戲,要在屏幕上生成一群怪的話,總不能自己一個個手工為每個怪都編寫一段代碼,讓它們顯示在屏幕上吧,那樣子要死人的!!!
[size=medium]1、while循環(huán)語句
- while(條件表示式){
- 語句塊;
- }
上面可以看出,while循環(huán)的語法結(jié)構(gòu)很簡單。下面我們來用while循環(huán)語句模擬一下生成10個怪。
- int i = 0;
- while (i < 10) {
- System.out.println("我是怪" + i + ",我出來了,哈哈哈!");
- i++;
- }
咱們還是一行一行的來看(總共也沒幾行可以看-_-!)。
- int i = 0;
這個 i ,我把它稱為循環(huán)控制變量。
- while (i < 10) {循環(huán)體;}
如果 i<10 那么進入循環(huán)體,開始重復(fù)執(zhí)行里面的代碼。
- while (i < 10) {
- System.out.println("我是怪" + i + ",我出來了,哈哈哈!");
- i++;
- }
進入循環(huán)了總得退出啊,要不然代碼運行到里面就不出來了,就會變成死循環(huán)。這里就靠我們的小 i 來退出。還記得 i++; 吧。就是 i 自身加1。每執(zhí)行一次循環(huán) i 的值就加1。當 i 的值等于10的時候,那么便不再滿足 i<10 的條件,循環(huán)退出。
[size=medium]2、for循環(huán)語句
語法結(jié)構(gòu)
- for(表達式1;表達式2;表達式3;)
- {
- 語句塊;
- }
還是用例子說話
- for(int i=0;i < 5;i++;)
- {
- System.out.println(i); //結(jié)果是換行輸出1 2 3 4 5
- }
對照上面,我們很容易發(fā)現(xiàn):
表達式1 是用來聲明或初始化一個循環(huán)變量。(聲明變量i,初值為0)
表達式2 是循環(huán)控制條件。(滿足 i < 5 這個條件時,循環(huán)繼續(xù),否則退出循環(huán))
表達式3 是循環(huán)控制變量的自增漲。(每次循環(huán)體完成后,執(zhí)行i++)
可以看出來,只是和while循環(huán)形式上不一樣,本質(zhì)還是一樣的。
最后我們用一個“復(fù)雜”的例子來結(jié)束這一節(jié)。
我們的目的是在控制臺打印如下效果,大家可以先自己做著試試, 不看下面答案。
*
**
***
****
*****
提示: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的內(nèi)容太多,而來這里看的人多少都有些編程的底子,這樣詳細的講解沒必要。所以我決定提前結(jié)束掉掃盲篇的內(nèi)容。關(guān)于后面還要用到的數(shù)組以及OOP的思想,我在這就不多講了,需要了解的可以自己去找點資料看看。下次就進入J2ME的基礎(chǔ)篇了。
本文出自Silver Wong的博客:http://www.aygfsteel.com/conanwsz