java问题 大虾帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/06/19 13:27:02
public class exam_3{
public static void main(string[] args){
char ch='A'; int r=6;
while(ch+1){
case 'A': r=r+3;
case 'B': r=r+5;
case 'C': r=r+7;
default : r=r*2;
}
System.out.println("r="+r);
}
}
这个程序的错误怎么改?还有这个程序是什么意思啊~?谢谢。。。

public class exam_3{
public static void main(string[] args){ //应是String,S要大写
char ch='A'; int r=6;
while(ch+1){ //将while改为switch
case 'A': r=r+3;
case 'B': r=r+5; //将会执行这条语句r=11,但因无break;程序所以没有退出循环,继续执下面的语句,直到default : r=r*2; 这里有默认的break;
case 'C': r=r+7;
default : r=r*2;
}
System.out.println("r="+r);
}
}

我来回答,我没有源码,不过我想你可以重点检查一下以下问题:
1)你的代码一旦和障碍物撞上也就再也动不了了,这说明你的代码能够判断能不能走通,但却不能判断角色是不是在走。你可以考虑用一个线程每隔一小段时间判断一下你的角色的位置,然后再确定是不是继续沿一个方向走,或者换个方向走。
2)也可能是你的转弯算法上有问题,如果你的转弯算法是右边不通向左转,左边不通向右转,那么你的角色肯定会到了一个地方出不来。 11207希望对你有帮助!

把while(ch+1)改成switch(ch+1)

1 string 应该是String
2 while 应该是 switch

意思就是

y = (x+3+5+7)*2
如果是 A, 则全部执行 (x+3+5+7)*2
如果是B, 则(x+5+7)*2
C (x+7)*2

我很怀疑你的意思,也许应该加上break才是你的本意吧!
case 'A':
r = r + 3;
break;

这如果真是个循环的话就出不来了