【问题标题】:No output when I run this code运行此代码时没有输出
【发布时间】:2015-11-15 10:19:20
【问题描述】:

我正在编写的这段代码用于练习“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));
 }
}

【问题讨论】:

  • 我认为您不能在 inner 类中执行 main (没有封闭实例)。将main 移动到外部DigitCounter 类。
  • @Hanky웃Panky import static 位于顶部。对我来说,它看起来像是一个内部类。
  • 很抱歉忽略了这一点
  • 为什么不将一些调试输出语句放入您的 DigitCounter.countDigits() 方法中,看看里面发生了什么?您尝试过自己调试什么?
  • @Warren:鉴于下面的答案,这就是为什么您的第一步应该始终是使用调试器。单步执行代码会准确显示问题所在。

标签: java loops while-loop


【解决方案1】:

您必须在您的countDigits( int number ) 方法中删除while(number>0); 之后的;,因为它在那里被阻塞。 你应该有这样的countDigits( int number ) 方法的主体:

public static int countDigits( int number )
     {
      int sum=0;
      while(number>0)
      {
        sum++;
        number = number/10;
      }
      return sum; 
     }

【讨论】:

  • 谢谢!看到这个答案后,我查找了“while 循环后的分号”,我明白为什么我放的东西不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-26
相关资源
最近更新 更多