2017-02-20 155 views
0

在另一个类中使用静态方法但在同一个文件中的正确方法是什么?我在打印x时没有收到任何输出;如何在java的其他类中使用静态方法

import java.util.Scanner; 
public class test { 
    public static void main(String[]args) 
    { 
     int x; 
     x=UserMainCode.checksum(50); 

     System.out.println(x); 
    } 
} 

class UserMainCode 
{ 
    public static int checksum(int n) 
    { 
     int n1=n,sum=0,d; 
     while(n1!=0) 
     { 
      d=n%10; 
      n1=n/10; 
      if(d%2!=0) 
      { 
       sum=sum+d; 
      } 
     } 

     if(sum%2==0) 
      return -1; 
     else 
      return 1; 
    } 
} 
+3

你正在调用静态方法。你没有得到任何输出的原因是因为'校验和'循环无限,因为它有一个错字。 – ajb

+0

d = n1%10; n1 = n1/10; – amudhan3093

回答

-1

更改的行

n1=n/10; 

n1=n1/10; 

,一切都将正常工作。

+0

如果您要回答,请解释代码背后的推理。 –

+0

不,这是我的一个愚蠢的错误....感谢很多亨利指出它....但是我曾经认为,如果我的逻辑错了,我会得到一个错误的答案.......不明白没有得到任何输出的原因 –

+0

@SatyakiGuha在你的原代码中,你说'while(n1!= 0)'。但由于你的错字,'n1'永远不会改变。 'while'循环应该运行直到'n1'变为0,但'n1'永远不会为0,因此循环将永远运行。循环之后的语句都不会被执行,包括'System.out.println'。这就是为什么你没有得到任何输出。该计划仍在运行。这是否为你清理了一些东西? – ajb

相关问题