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前的语句要记得写分号“;”呢。
另外感谢舍友告诉了我多写一句 System.out.println(); 相当于一个换行符功能的用法。
参考资料
《Java2 使用教程》
题外话:其实我相信嫦娥和老猪才是真爱,不然太毁童年了。