1. 程式人生 > >201711671208 《Java程式設計》 第一週學習計劃

201711671208 《Java程式設計》 第一週學習計劃

public class converstation
{
public static void main(String args[])
{
	System.out.println("以下是師徒一行四人的對話");
	System.out.println();
	int i=0;
	pig zhuBaJie=new pig();
	heShang tanSeng=new heShang();
	monkey sunWuKong=new monkey();
	for(i=0;i<3;i++)
	{
			switch(i)
			{
				case 0:zhuBaJie.speak1(); break;
				case 1:tanSeng.speak2(); break;
				case 2:sunWuKong.speak3(); break;
			}
	}
	
}
}

class pig
{
	void speak1()
	{
		System.out.println("師傅咱離西天還有多少里路啊?俺老豬想掉頭上月宮了。");
	}
}

class heShang
{
	void speak2()
	{
		int meter=108000;
		System.out.println("咱離西天還有"+meter+"里路呢!");
	}
}

class monkey
{
	void speak3()
	{
		int green=32511;
		System.out.println("你要敢上月宮把后羿給"+(char)green+"了,老孫饒不了你。");
	}
}

這是結果:

教材學習內容總結

學了資料型別轉換,switch語句具體細節,for語句等。

程式碼除錯中的問題和解決過程

原來程式碼中的一段是這樣寫的,玄學的是,如果for迴圈裡如果改為for(i=0;i<3;i++),也就是如下圖

for(i=0;i<3;i++)
	{
		switch(i)
		{
			case 0:zhuBaJie.speak();
			case 1:tanSeng.speak();
			case 2:sunWuKong.speak();
		}
	}

就會出現這樣的結果:

我的上帝啊,后羿被綠了3次,這是怎麼回事?我要還嫦娥一個清白!

原來每個case後面並沒有新增break,執行一個case後會繼續執行執行case.而且迴圈體導致同一個case被重複執行。

嗯,以後寫switch語句要記得寫break,並且break前的語句要記得寫分號“;”呢。

參考資料

《Java2 使用教程》

題外話:其實我相信嫦娥和老豬才是真愛,不然太毀童年了。