Bom dia.
Como chamar o método main, no caso de uma escolha inválida, se é que possível?
Existe a possibilidade de fazer isso, mas de outra forma.
Não é um método que chama o main e sim o main que irá chamar um método para ser executado e caso esse método falhe, ele deve dar um return fazendo com que volte para a main
E como declara isso pra que ele retorne no caso de falha? Por favor.
Seria bom você postar o código que você está fazendo para podermos ajudar de forma mais direta.
Você pode capturar o erro com a função try/catch do java e dentro do catch tratar o erro, o tratamento pode ser uma mensagem e continuar o programa, mas eu acho que se você colocar um return; dentro do catch ele irá retornar para a main.
Preciso chamar o main na parte do Emoji, no último else do método operacao.
package nome.do.pacote.outras.coisas
import java.util.Scanner;
public class parOuImparComMetodo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Entre com dois números separados por espaço ou enter.");
double num1 = scan.nextDouble();
double num2 = scan.nextDouble();
System.out.println("Entre com a operação. (+ - / *)");
String operacao = scan.next();
operacao(operacao, num1, num2);
}
static void operacao(String op, double num1, double num2) {
double resultSoma = num1+num2;
double resultSub = num1-num2;
double resultMult = num1*num2;
double resultDiv = num1/num2;
if(op.equals("+")) {
System.out.println("O resultado da soma é: "+resultSoma);
classificacoes(resultSoma);
}else if(op.equals("-")) {
System.out.println("O resultado da subtração é: "+resultSub);
classificacoes(resultSub);
}else if(op.equals("*")) {
System.out.println("O resultado da multiplicação é: "+resultMult);
classificacoes(resultMult);
}else if(op.equals("/")) {
System.out.println("O resultado da divisão é: "+resultDiv);
classificacoes(resultDiv);
}**else {**
** System.out.println(“Não há suporte para o que pretende.”);**
** 
** }
}
static void classificacoes(double resultado) {
if(resultado<0 & resultado%2==0) {
System.out.println(resultado+" é um número negativo e par.");
}else if(resultado>0 & resultado%2==0) {
System.out.println(resultado+" é um número positivo e par.");
}else if(resultado==0) {
System.out.println(resultado+" não é negativo, nem positivo, mas é um número par.");
}else if(resultado<0 & resultado%2!=0) {
System.out.println(resultado+" é um número negativo e ímpar.");
}else if(resultado>0 & resultado%2!=0) {
System.out.println(resultado+" é um número positivo e ímpar.");
}
}
}
Acho que isso vai funcionar para o que você quer.
package nome.do.pacote.outras.coisas
import java.util.Scanner;
public class parOuImparComMetodo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Entre com dois números separados por espaço ou enter.");
double num1 = scan.nextDouble();
double num2 = scan.nextDouble();
String operacao;
int teste;
do {
System.out.println("Entre com a operação. (+ - / *)");
operacao = scan.next();
teste = operacao(operacao, num1, num2);
}while(teste == 1);
}
static int operacao(String op, double num1, double num2) {
double resultSoma = num1+num2;
double resultSub = num1-num2;
double resultMult = num1*num2;
double resultDiv = num1/num2;
if(op.equals("+")) {
System.out.println("O resultado da soma é: "+resultSoma);
classificacoes(resultSoma);
}else if(op.equals("-")) {
System.out.println("O resultado da subtração é: "+resultSub);
classificacoes(resultSub);
}else if(op.equals("*")) {
System.out.println("O resultado da multiplicação é: "+resultMult);
classificacoes(resultMult);
}else if(op.equals("/")) {
System.out.println("O resultado da divisão é: "+resultDiv);
classificacoes(resultDiv);
}else {
System.out.println("Não há suporte para esta operação.");
return 1;
}
return 0;
}
static void classificacoes(double resultado) {
if(resultado<0 & resultado%2==0) {
System.out.println(resultado+" é um número negativo e par.");
}else if(resultado>0 & resultado%2==0) {
System.out.println(resultado+" é um número positivo e par.");
}else if(resultado==0) {
System.out.println(resultado+" não é negativo, nem positivo, mas é um número par.");
}else if(resultado<0 & resultado%2!=0) {
System.out.println(resultado+" é um número negativo e ímpar.");
}else if(resultado>0 & resultado%2!=0) {
System.out.println(resultado+" é um número positivo e ímpar.");
}
}
}
Muito obrigado. Funcionou e, finalmente, consigo entender com mais faciidade essas novidades.