(JAVA)为什么我没有结果?主类中有错误吗?我可以';我找不到
//抽象父类,有getnum()和show() //子类,返回不同的编号以显示其标签(JAVA)为什么我没有结果?主类中有错误吗?我可以';我找不到,java,Java,//抽象父类,有getnum()和show() //子类,返回不同的编号以显示其标签 import java.util.*; abstract class class1{ final int low=200; final int high=3000; protected abstract int getlabel(); protected abstract void show(); int[] dig; int sum=0; protect
import java.util.*;
abstract class class1{
final int low=200;
final int high=3000;
protected abstract int getlabel();
protected abstract void show();
int[] dig;
int sum=0;
protected int getnum() {
int num =(int)(Math.random()*(high-low)+low);
return num;
}
}
代码运行时没有显示任何内容…为什么…这是您的问题:
public class test1 {
public static void play(class1 stf) {
int label=stf.getlabel();
System.out.println(label);
stf.show();
}
public static void main(String[] args) {
object1 player= new object1();
play(player);
}
}
在第一次迭代之后,dig[i]
始终等于1
。因为第三行。所以你得到了一个无限循环。如果您使用调试器而不是仅仅运行代码,则很容易发现此类错误
while (dig[i] > 0) {
sum += dig[i] % 10;
dig[i] /= dig[i];
}
它可以是无止境的循环。
在方法上使用debug,你就会看到它。首先从以下java命名约定开始。类名是大写的。然后你用有意义的名字。将您的子类称为“object1”类似于。。。没有什么。这并没有告诉读者任何事情。除此之外,“什么都不显示”听起来是错误的。你应该得到一些打印报表。真的,什么都没有?我的错,我的代码太长了,所以我编写了类似的代码,忘记了类名……而且,我真的什么都没有得到@蔡王辉 “我一无所获”更好的说法是程序永远不会终止。你可能还想学习。只是一个小细节:
dig[I]
不能为零,因为class1.low=200
,这是由getnum()
method.ohhhh>生成的最小可能随机数!我很蠢,谢谢兄弟@JaroslawPawlak好的,谢谢,我实际上并没有查看他的所有代码,我只是使用了一个调试器。
public class test1 {
public static void play(class1 stf) {
int label=stf.getlabel();
System.out.println(label);
stf.show();
}
public static void main(String[] args) {
object1 player= new object1();
play(player);
}
}
while (dig[i] > 0) {
sum += dig[i] % 10;
dig[i] /= dig[i];
}
while(dig[i]>0)