Estava criando um código para me responder se um número é divisivel por 2 ou não. Em caso positivo ou negativo ele retorna uma mensagem simples.
O primeiro código (que não imprime corretamente as afirmativas) não inclui no if o método que verifica se o numero é ou não divisível por 2 (eu imaginei que o problema fosse no while , mas depois de 30 min testando eu pensei que a falha deveria ser que o mesmo valor inicial é enviado para o teste , que por sua vez sempre retorna true , independente da adição que eu coloquei dentro do if) :
>
> public class Test {
>
> public static void main(String[] args) {
>
>
> int numbertotest = 0;
> int finishnumber = 20;
> boolean result = isEvenNumber(numbertotest);
> while (numbertotest != finishnumber) {
> if (result) {
> System.out.println("THE NUMBER " + numbertotest + " IS AN EVEN NUMBER !");
> numbertotest++;
> } else {
> System.out.println("THE NUMBER " + numbertotest + " IS AN NOT AN EVEN NUMBER !");
> numbertotest++;
> }
> }
>
> }
>
> public static boolean isEvenNumber(int numbertotest) {
>
> if ((numbertotest % 2) == 0) {
> return true;
> } else {
> return false;
> }
> }
> }
No segundo código tudo funciona , mas para isso eu tive que colocar o método no if .
> public class Test {
>
> public static void main(String[] args) {
>
>
>
> int numbertotest=1;
> int finishnumber =20;
> boolean result = isEvenNumber(numbertotest);
> while(numbertotest < finishnumber) {
> if(isEvenNumber(numbertotest)){ System.out.println("THE NUMBER " + numbertotest + " IS AN EVEN NUMBER !");
> numbertotest++;
> }
> else {
> System.out.println("THE NUMBER " + numbertotest + " IS AN NOT AN EVEN NUMBER !");
> numbertotest++; }
> continue;}
>
> }
>
> public static boolean isEvenNumber(int numbertotest) {
>
> if ((numbertotest % 2) == 0) {
> return true;
> } else {
> return false;
> }
>
> }
> }
Os dois deveriam funcionar , mas só um imprime tudo correto. Porque ?