Stack Overflow em Português Asked on November 15, 2021
Fiz um programinha básico sobre calcular potenciação, porém quando chega no while
trava, e até o terminal eu tenho que reiniciar. Assim não consigo continuar o programa. Até tentei mudar a maneira do Scanner porém cheguei a conclusão que era o while
mesmo.
import java.util.Scanner;
int c = 0; //contador
int p = 1; //potencia
int a;
int b;
Scanner input = new Scanner(System.in);
System.out.println("Digite o valor da base:");
a = input.nextInt();
System.out.println("Digite o valor do expoente:");
b = input.nextInt();
while (c != b){
p = p * a;
c = c++;
}
System.out.printf("A potencia de int %d como base e int %d como expoente eh: %dn",a, b, p);
input.close();
}
O maior problema é que o c++
já está fazendo o incremento na variável, o ++
é um operador que causa efeito colateral e muda o valor da variável, então a atribuição do resultado nela mesma está fazendo algo indevido e causando problema.
Na verdade o código poderia ser melhor organizado e dar nomes melhores para as variáveis, assim pode evitar comentários.
Poderia usar um for
mas preferi deixar assim porque poderia ser exigência do exercício.
import java.util.Scanner;
class Main {
public static void main (String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Digite o valor da base:");
int base = input.nextInt();
System.out.println("Digite o valor do expoente:");
int expoente = input.nextInt();
int contador = 0;
int potencia = 1;
while (contador != expoente) {
potencia *= base;
contador++;
}
System.out.printf("A potencia de int %d como base e int %d como expoente eh: %dn", base, expoente, potencia);
input.close();
}
}
Veja funcionando no ideone. E no repl.it. Também coloquei no GitHub para referência futura.
Answered by Maniero on November 15, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP