Bom dia!
Não estou conseguindo printar o resultado do método Tabuada.
Não consegui identificar o erro.
Se alguém puder me ajudar, agradeço
Segue toda a classe
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[] vetor = new int[10];
int opcao;
System.out.println(" **** Escolha uma opção ****");
System.out.println(" 1 - Calcular a média entre 3 números \n"
+ " 2 - Saber se o número é Primo\n"
+ " 3 - Saber o maior número entre 10 digitados\n"
+ " 4 - Tabuada \n"
+ " 5 - Sair do Programa");
opcao = in.nextInt();
switch (opcao) {
case 1:
System.out.println("MÉDIA DAS 3 NOTAS");
int cont = 1;
float[] nota = new float[3];
while (cont < 3) {
for (int i = 0; i < nota.length; i++) {
System.out.println("Digite a " + cont + "ª nota");
nota[i] = in.nextFloat();
cont++;
}
System.out.printf("A Média das notas é %.2f ", Media(nota));
}
break;
case 2:
System.out.println("NÚMERO PRIMO");
int numero; int divisor = 0;
System.out.println("Digite um numero candidato a nº primo");
numero = in.nextInt();
boolean primo = false;
if(Primo(numero)== primo ){
System.out.println("O número " + numero+ " não é Primo");
}
else{
System.out.println("O número " + numero+ " é Primo");
}
break;
case 3:
System.out.println("MAIOR DOS NÚMEROS");
cont = 0;
int[] maior = new int[10];
for (int i = 0; i < maior.length; i++) {
System.out.println((i + 1) + "° numero");
maior[i] = in.nextInt();
cont++;
System.out.println("O maior dos números é o " + maiorNumero(maior));
}
break;
case 4:
System.out.println("TABUADA");
System.out.println("Informe um numero entre 1 e 9");
int n1 = in.nextInt();
if(n1 <1 || n1 >9){
System.out.println("Errado, digite um numero entre 1 e 9");
n1 = in.nextInt();
System.out.print("Resultado da Tabuada do nº "+ n1);
System.out.println(Tabuada(n1));
}
break;
case 5:
System.out.println("O programa foi encerrado");
Encerra();
break;
default:
break;
}
}
public static float Media(float[] n) {
float soma = 0, media = 0;
for (int i = 0; i < 3; i++) {
soma += n[i];
media = soma / 3;
}
return media;
}
public static boolean Primo(int num){
boolean resultado = true;
for(int i = 2; i < num ; ++i){
if(num % i == 0){
resultado = false;
}
}
return resultado;
}
public static int maiorNumero(int[] num) {
int maior = 0;
int aux;
for (int i = 0; i < num.length; i++) {
aux = num[i];
if (aux > maior) {
maior = aux;
}
}
return maior;
}
public static int [] Tabuada(int num) {
int [] tabuada = new int[10];
for (int i = 1; i < 10; i++) {
tabuada[i] = (i * num);
}
return tabuada;
}
public static void Encerra() {
System.exit(0);
}
}
1 curtida
Tente substituir por isso:
public static ArrayList Tabuada(int num)
{
ArrayList tabuada = new ArrayList<Integer>();
tabuada.clear();
for (int i = 1; i <= 10; i++)
{
tabuada.add(i * num);
}
return tabuada;
}
1 curtida
Olã Giovane, o meu método se for usado no main ele imprime, o problema é quando chamo no switch que ele não imprime nada. Possivelmente é no switch que está o erro, mas não identifiquei.
Obrigado pelo ajuda!
1 curtida
Funcionou aqui:
import java.util.Scanner;
import java.util.ArrayList;
public class main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[] vetor = new int[10];
int opcao;
System.out.println(" **** Escolha uma opção ****");
System.out.println(" 1 - Calcular a média entre 3 números \n"
+ " 2 - Saber se o número é Primo\n"
+ " 3 - Saber o maior número entre 10 digitados\n"
+ " 4 - Tabuada \n"
+ " 5 - Sair do Programa");
opcao = in.nextInt();
switch (opcao) {
case 1:
System.out.println("MÉDIA DAS 3 NOTAS");
int cont = 1;
float[] nota = new float[3];
while (cont < 3) {
for (int i = 0; i < nota.length; i++) {
System.out.println("Digite a " + cont + "ª nota");
nota[i] = in.nextFloat();
cont++;
}
System.out.printf("A Média das notas é %.2f ", Media(nota));
}
break;
case 2:
System.out.println("NÚMERO PRIMO");
int numero; int divisor = 0;
System.out.println("Digite um numero candidato a nº primo");
numero = in.nextInt();
boolean primo = false;
if(Primo(numero)== primo ){
System.out.println("O número " + numero+ " não é Primo");
}
else{
System.out.println("O número " + numero+ " é Primo");
}
break;
case 3:
System.out.println("MAIOR DOS NÚMEROS");
cont = 0;
int[] maior = new int[10];
for (int i = 0; i < maior.length; i++) {
System.out.println((i + 1) + "° numero");
maior[i] = in.nextInt();
cont++;
System.out.println("O maior dos números é o " + maiorNumero(maior));
}
break;
case 4:
System.out.println("TABUADA");
System.out.println("Informe um numero entre 1 e 9");
boolean tentou = false;
while(tentou != true)
{
int n1 = in.nextInt();
if(n1>0 && n1<10)
{
System.out.println("Resultado da Tabuada do nº "+ n1);
System.out.println(Tabuada(n1));
tentou = true;
}
else{
System.out.println("Errado, entre 1 e 9");
tentou = false;
}
}
break;
case 5:
System.out.println("O programa foi encerrado");
Encerra();
break;
default:
break;
}
}
public static float Media(float[] n) {
float soma = 0, media = 0;
for (int i = 0; i < 3; i++) {
soma += n[i];
media = soma / 3;
}
return media;
}
public static boolean Primo(int num){
boolean resultado = true;
for(int i = 2; i < num ; ++i){
if(num % i == 0){
resultado = false;
}
}
return resultado;
}
public static int maiorNumero(int[] num) {
int maior = 0;
int aux;
for (int i = 0; i < num.length; i++) {
aux = num[i];
if (aux > maior) {
maior = aux;
}
}
return maior;
}
public static ArrayList Tabuada(int num)
{
ArrayList tabuada = new ArrayList();
tabuada.clear();
for (int i = 1; i <= 10; i++)
{
tabuada.add(i * num);
}
return tabuada;
}
public static void Encerra() {
System.exit(0);
}
}
if(n1 <1 || n1 >9){
System.out.println(“Errado, digite um numero entre 1 e 9”);
n1 = in.nextInt();
System.out.print("Resultado da Tabuada do nº "+ n1);
System.out.println(Tabuada(n1));
}
O método para exibir a tabuada ta dentro do IF, ou seja, só vai mostrar a tabuada se o número for menor que 1, ou maior que 9, você pode substituir por:
if(n1 <1 || n1 >9){
System.out.println(“Errado, digite um numero entre 1 e 9”);
n1 = in.nextInt();
System.out.print("Resultado da Tabuada do nº "+ n1);
System.out.println(Tabuada);
}else{
System.out.print("Resultado da Tabuada do nº "+ n1);
System.out.println(Tabuada);
}
1 curtida
Deu certo, obrigado Bruno!
Deu certo, mas, não informei que precisa printar
1 X numero = resultado
2 X numero = resultado
3 X numero = resultado
4 X numero = resultado
5 X numero = resultado
6 X numero = resultado
7 X numero = resultado
8 X numero = resultado
9 X numero = resultado
10 X numero = resultado
Como pode ser feito?
Obrigado pelo retorno!
1 curtida
//PRO SWITCH
case 4:
System.out.println(“TABUADA”);
System.out.println(“Informe um numero entre 1 e 9”);
boolean tentou = false;
while(tentou != true)
{
int n1 = in.nextInt();
if(n1>0 && n1<10) {
System.out.println("Resultado da Tabuada do nº "+ n1);
Tabuada(n1);
tentou = true;
}
else{
System.out.println("Errado, entre 1 e 9");
tentou = false;
}
}
break;
//MÉTODO DA TABUADA
public static void Tabuada(int numerador)
{
int[] a = {0,1,2,3,4,5,6,7,8,9,10};
for(int aa =0; aa<=a.length-1; aa++)
{
System.out.println(a[numerador]+"x"+a[aa]+"="+a[numerador]*a[aa]);
while(aa ==10)
{
System.out.println("\n");
break;
}
}
}
Um dos métodos é criar um for, de 1 a 10 e mostrar todas as multiplicações do número.
static void tabuada(n){
for(int i = 1; i <= 10; i++){
System.out.println(n + " x " + i + " = " + (n * i));
}
}
1 curtida
Sim, eu havia feito assim, porém, no exercício, o System,out tem que estar fora do método, como fiz com o outros métodos, todos os prints são dentro do switch. Só com o da tabuada é que não estou conseguindo.
1 curtida
Começa a ficar mais interessante kkk,
case 4:
System.out.println(“TABUADA”);
System.out.println(“Informe um numero entre 1 e 9”);
boolean tentou = false;
while(tentou != true)
{
String n = in.next();
int n1 = Integer.parseInt(n);
if(n1>0 && n1<10) {
System.out.println("Resultado da Tabuada do nº "+ n1);
System.out.println(Tabuada(n));
tentou = true;
}
else{
System.out.println("Errado, entre 1 e 9");
tentou = false;
}
}
break;
//método
public static String Tabuada(String numer)
{
String tab = “”;
int numerador = Integer.parseInt(numer);
for(int n = 0; n<=10; n++)
{
tab+=(String.valueOf(numerador+“x”+n+"="+numerador*n+"\n"));
}
return tab;
}