(JAVA)为什么我没有结果?主类中有错误吗?我可以';我找不到

(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

//抽象父类,有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;
    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)