Ajuda java (par ou impar)

Bom dia a todos,

Tenho uma trabalho da matéria de teoria de programação mas não consigo achar meu erro na programação.

O EXERCICIO É: Crie uma rotina que informe ao usuário se o número digitado é par ou ímpar.

COMO EU FIZ:

import java.util.Scanner;

class Main{
  public static void main(String[] args){
 
// Crie uma rotina que informe ao usuário se o número digitado é par ou ímpar.

Scanner scan = new Scanner(System.in);
  
  int n;
  System.out.println("Digite um numero:");
  n = scan.nextInt();
  
  if(n%2 == 0){
   System.out.println("Numero é Par");
  }
  
  else if(n%2 == 1){
   System.out.println("Numero é Impar");
  }


  }
}

Pode me dizer o pq ele só faz um numero por vez? se eu digitar 10 sai certinho, mas se caso em seguida eu digito 5 ele já da erro

Para fazer vários, vc deve executar a verificação num loop. Qual erro está aparecendo qdo vc tenta outro número em seguida?

1 curtida

oi

aparece este erro: bash : 9 : command not found

poderia me ajudar a fazr o loop?

Att

Antes, nos diga como vc está executando seu código. Pela linha de comando? Está usando alguma IDE (como eclipse, intellij, etc) ?

1 curtida

O seu programa Java se encerra e você tenta digitar o “9” na linha de comando (e não é mesmo um comando válido).

Se seguir a dica do @Lucas_Camara e fizer um loop, ele vai continuar executando até certa condição ser atingida.

2 curtidas

Só uma coisa: se o resto da divisão por 2 não é zero, o número é impar. Então se você já estou no if se é zero, não precisa testar se é 1 no else. Basta fazer:

if (n % 2 == 0) {
    System.out.println("Número é Par");
} else {
    System.out.println("Número é Ímpar");
}

Ou seja, se o resto não for zero, ele não entra no if e já cai no else, e ali eu não preciso testar tudo de novo (e nem preciso calcular o valor novamente). Se chegou no else, é porque o resto não é zero, então ali eu tenho certeza que é ímpar.

E assim fica melhor porque também trata os casos em que o número é negativo, já que nesses casos o resto será -1 (exemplo: https://ideone.com/7kbuo3).

1 curtida

Estou usando o Replit

é pelo linha de comando

Não precisa de else if, basta um else:

if (n % 2 == 0) {
    System.out.println("Numero é Par");
} else {
    System.out.println("Numero é Impar");
}

Se quiser escrever menos código:

String parOuImpar = n % 2 == 0 ? "Par" : "Impar";
System.out.println("Numero é " + parOuImpar);
1 curtida

como faço para que o programe faça um loop? que ele mostre um 5 números
q eu digitar?

Scanner scan = new Scanner(System.in);

for (int i = 0; i < 5; i++) {
  System.out.println("Digite um numero:");
  int n = scan.nextInt();
  if (n % 2 == 0) {
    System.out.println("Numero é Par");
  } else {
    System.out.println("Numero é Impar");
  }
}

Isso deve executar 5 vezes.

1 curtida

Muito obrigada!

1 curtida