Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 运行此代码时没有输出_Java_Loops_While Loop - Fatal编程技术网

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

我正在编写的这段代码是为了练习“While循环”。当我运行这段代码来计算一个数字的位数时,java不会输出任何东西,我发现这很奇怪,因为通常当我出错时,它会给我一个错误,但这段代码运行时没有错误。有人能指出并解释为什么没有显示输出吗

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循环后的分号”,我明白了为什么我放的东西不起作用。