2017-02-20 152 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

相關問題