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

Вы вызываете статический метод в порядке. Причина, по которой вы не получаете какой-либо вывод, состоит в том, что 'checksum' бесконечно зацикливается, потому что в нем есть опечатка. – 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