Boa noite!
Estou tentando fazer um exercício de uma apostila de introdução a linguagem Java e não consigo fazer um menu funcionar adequadamente.
Descrição do problema: Era pra fazer três exercicios, onde cada um executaria um laço de repetição (for, while e do...while) e mostrar o nome digitado 100 vezes. Resolvi fazer um exercício único com um menu que exibiria o nome digitado com a opção de laço escolhido. Meu problema é que não estou conseguindo fazer este menu "pegar" o case selecionado e executar, onde só a opão de encerrar o programa funciona.
Caso alguém possa me ajudar, segue o código que fiz até aqui.
import java.util.Scanner;
public class NomeWhile {
public static void main(String[] args) {
int opcao;
String nome;
int i = 0;
Scanner op = new Scanner(System.in);
Scanner nm = new Scanner(System.in);
System.out.println("Qual eh seu nome?");
nome = nm.nextLine();
do{
System.out.println("O nome digitado será exibido 100 vezes...");
System.out.println("Digite a opcao desejada: ");
System.out.println("Digite 1 para fazer com laco 'for';");
System.out.println("Digite 2 para fazer com laco 'while';");
System.out.println("Digite 3 para fazer com laco 'do-while';");
System.out.println("Ou digite 0 para abortar...");
opcao = op.nextInt();
switch(opcao){
case 0:
System.out.println("Ok, ate mais ...");
break;
case 1:
for(int c = 0;c<100;c++){
System.out.println(nome);
}
break;
case 2:
while(i<100){
System.out.println(nome);
i++;
}
break;
case 3:
do{
System.out.println(nome);
i++;
}while(i<100);
break;
default:
System.out.println("Opcao invalida !!!");
}
}while(opcao != 0);
System.out.println("Programa encerrado.");
}
}