Java 运行此代码时没有输出
我正在编写的这段代码是为了练习“While循环”。当我运行这段代码来计算一个数字的位数时,java不会输出任何东西,我发现这很奇怪,因为通常当我出错时,它会给我一个错误,但这段代码运行时没有错误。有人能指出并解释为什么没有显示输出吗Java 运行此代码时没有输出,java,loops,while-loop,Java,Loops,While Loop,我正在编写的这段代码是为了练习“While循环”。当我运行这段代码来计算一个数字的位数时,java不会输出任何东西,我发现这很奇怪,因为通常当我出错时,它会给我一个错误,但这段代码运行时没有错误。有人能指出并解释为什么没有显示输出吗 import static java.lang.System.*; public class DigitCounter { public static int countDigits( int number ) { int sum=0; while
import static java.lang.System.*;
public class DigitCounter
{
public static int countDigits( int number )
{
int sum=0;
while(number>0);
{
sum++;
number = number/10;
}
return sum;
}
}
\\new class
import static java.lang.System.*;
public class DigitCounterRunner
{
public static void main( String args[] )
{
out.println(DigitCounter.countDigits(234));
}
}
您必须删除
编码>后时(数>0)
在countDigits(int number)
方法中,因为它在那里是块。
您应该有这样的countDigits(int number)
方法体:
public static int countDigits( int number )
{
int sum=0;
while(number>0)
{
sum++;
number = number/10;
}
return sum;
}
我认为您不能在内部类中执行main
(没有封闭实例)。将main
移动到外部DigitCounter
类。@Hanky웃平移import static
位于顶部。对我来说,它看起来像是一个内部类。哦,很抱歉,忽略了这一点,为什么不在DigitCounter.countDigits()方法中放入一些调试输出语句,看看里面发生了什么?你自己试过做什么来调试它?@Warren:给出下面的答案,这就是为什么你的第一步应该总是使用调试器。单步执行代码将准确显示问题所在。谢谢!在我看到这个答案后,我查了一下“while循环后的分号”,我明白了为什么我放的东西不起作用。