The Oicle 0 Denunciar post Postado Abril 24, 2015 Múltipla escolha 1 - Elaborar uma questão de múltipla escolha, de uma disciplina que esteja cursando ou um tema de interesse, com um enunciado e cinco alternativas, sendo uma correta ou incorreta. Escrever um programa que mostra a questão na tela, pede a resposta correta e informa ao usuário se este acertou ou errou. Enriqueça o programa acima da questão de múltipla escolha, incluindo uma outra questão de outro tema. No início do programa, ofereça ao usuário a escolha de qual questão quer responder. Algoritmo: import java.util.Scanner; public class ideia312 { public static void main(String args[]){ Scanner entrada = new Scanner(System.in); String a = "A"; String b = "B"; String c = "C"; // 1° questão System.out.println("1- Quantos é dois mais dois elevado a seis?"); System.out.println(a+") 93.22"); System.out.println(b+") 100"); System.out.println(c+") 30082"); //2° Questão System.out.println("2- quantos é 12 dividido 3 elevado a 9"); System.out.println(a+") 93.22"); System.out.println(b+") 100"); System.out.println(c+") 30082"); //escolhe a pergunta System.out.println("Deseja responder a questão 1 ou 2?"); int d = entrada.nextInt(); if(d==1){ System.out.println("Please responda: "); String e = entrada.nextLine(); if(e.equals("c") || e.equals("C")){ System.out.print("Você acertou!"); }else{ System.out.print("Você errou!"); } } if(d==2){ System.out.println("Please responda: "); String e = entrada.nextLine(); if(e.equals("a") || e.equals("A")){ System.out.println("Você acertou!"); }else{ System.out.println("Você errou!"); } } } } Resultado: 1- Quantos é dois mais dois elevado a seis? A) 93.22 B) 100 C) 30082 2- quantos é 12 dividido 3 elevado a 9 A) 93.22 B) 100 C) 30082 Deseja responder a questão 1 ou 2? 2 Please responda: Você errou! Ele não aceita um if dentro de outro if Porquê??? Compartilhar este post Link para o post Compartilhar em outros sites
reebr 94 Denunciar post Postado Abril 24, 2015 Provavelmente o scanner está segurando lixo, porque não tem nada de errado no código. Tente isto: //escolhe a pergunta System.out.println("Deseja responder a questão 1 ou 2?"); int d = entrada.nextInt(); entrada.nextLine(); // vê se resolve... E uma dica, aqui: if(e.equals("a") || e.equals("A")){} Ao invés de fazer duas comparações você pode reduzir para: if(e.toLowerCase().equals("a")){} Compartilhar este post Link para o post Compartilhar em outros sites
leonardo.sc 2 Denunciar post Postado Maio 12, 2015 Provavelmente o scanner está segurando lixo, porque não tem nada de errado no código. Tente isto: //escolhe a pergunta System.out.println("Deseja responder a questão 1 ou 2?"); int d = entrada.nextInt(); entrada.nextLine(); // vê se resolve... E uma dica, aqui: if(e.equals("a") || e.equals("A")){} Ao invés de fazer duas comparações você pode reduzir para: if(e.toLowerCase().equals("a")){} Ou .equalsIgnoreCase() Compartilhar este post Link para o post Compartilhar em outros sites
reebr 94 Denunciar post Postado Maio 12, 2015 Ou .equalsIgnoreCase() Bem lembrado. :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Maio 12, 2015 É o velho problema do \n na entrada padrão: http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextLine() import java.util.Scanner; public class Teste { public static void main(String args[]){ Scanner entrada = new Scanner(System.in); // 1° questão System.out.println("1- Quantos é dois mais dois elevado a seis?"); System.out.println("A) 93.22"); System.out.println("B) 100"); System.out.println("C) 30082"); //2° Questão System.out.println("2- quantos é 12 dividido 3 elevado a 9"); System.out.println("A) 93.22"); System.out.println("B) 100"); System.out.println("C) 30082"); //escolhe a pergunta System.out.println("Deseja responder a questão 1 ou 2?"); int escolha = Integer.parseInt(entrada.nextLine()); if (escolha != 1 && escolha != 2) { System.err.println("Opção inválida"); } else { System.out.print("Resposta: "); String resp = entrada.nextLine(); if ((escolha == 1 && "c".equalsIgnoreCase(resp)) || (escolha == 2 && "a".equalsIgnoreCase(resp))) { System.out.println("Você acertou."); } else { System.out.println("Você errou."); } } } } Compartilhar este post Link para o post Compartilhar em outros sites