2013-08-30 3 views
0

Вот что у меня есть:Делитель логика не работает

public static boolean isDivisor(int num, int Divisor) { 
    int remainder = num%Divisor; 
    if (remainder >= 1) { 
     return false; 
    } else { 
     return true; 
    } 
} 

В принципе, то, что происходит, это чтение в двух значениях, получение остатка и проверки, если это делитель. Проблема, с которой я сталкиваюсь, состоит в том, что она всегда возвращает значение true, даже если числа не делятся (т. Е. Для 5, 2 не является делителем). Я смущен, почему это не работает. Мысли?

+0

Это на Java? – pamphlet

+0

Код работает ... только что протестирован isDivisor (5,2) (возвращает false) и isDivisor (10,5) (возвращает true) – gtgaxiola

+0

Я взял копию вашего метода, переданную в 5 и 2, и получил назад false, как ожидалось (используя C#) –

ответ

1

Ваш код верный. Но это лучше (C# версии, но для Java почти то же самое):

public static bool isDivisor(int num, int Divisor) { 
    return num % Divisor == 0; 
} 

Кроме того, имена переменных должны начинаться с символа нижнего регистра (отметьте комментарий 1/2)

public static bool isDivisor(int num, int divisor) { 
    return num % divisor == 0; 
} 

Кроме того, так как это в C# код имя метода должно быть написано с заглавной буквой:

public static bool IsDivisor(int num, int divisor) { 
    return num % divisor == 0; 
} 

последним примером просто для полноты картины, вы можете игнорировать это, так как вы пишете в Jave и поэтому верблюжий совершен ,

+3

Если мы собираемся предоставить предложения стиля в качестве ответов, не следует ли использовать нижний регистр «d» в 'Divisor'? – pamphlet

+0

Вы правы (+1), но я показывал только полезность if/then/else :) – Alberto

+0

просто проверил его снова, все еще не работая с файлом 5,2 (возвращает true, но должен быть ложным), I протестировал его на моем ноутбуке, который имеет NetBeans 7.3.1 и мой компьютер с Netbeans 7.0.1 ... Я могу сказать, что код верен, но я не могу заставить его работать. – user2733440

Смежные вопросы