Basicamente, quando quiser repetir algo, use um loop.
Só um detalhe, do jeito que você fez, se a pessoa digitar qualquer número que não esteja entre 1 e 6, o programa diz que é sábado (por exemplo, digite 8
, ou 10
, ou ainda -1
). Então além do loop, tem que melhorar a verificação. Algo assim:
Scanner s = new Scanner(System.in);
while (true) { // repete "indefinidamente"
System.out.println("Digite um numero de 1 a 7 (ou 0 para sair)");
int i = s.nextInt();
if (i == 0) {
break; // se digitar zero, sai do while
} else if (i == 1) {
System.out.println("Domingo");
} else if (i == 2) {
System.out.println("Segunda");
} else if (i == 3) {
System.out.println("Terça");
} else if (i == 4) {
System.out.println("Quarta");
} else if (i == 5) {
System.out.println("Quinta");
} else if (i == 6) {
System.out.println("Sexta");
} else if (i == 7) {
System.out.println("Sábado");
} else {
System.out.println("Valor inválido, deve estar entre 1 e 7");
}
}
Claro que também daria para trocar por switch
:
Scanner s = new Scanner(System.in);
while (true) { // repete "indefinidamente"
System.out.println("Digite um numero de 1 a 7 (ou 0 para sair)");
int i = s.nextInt();
if (i == 0) {
break; // se digitar zero, sai do while
}
switch (i) {
case 1:
System.out.println("Domingo");
break;
case 2:
System.out.println("Segunda");
break;
case 3:
System.out.println("Terça");
break;
case 4:
System.out.println("Quarta");
break;
case 5:
System.out.println("Quinta");
break;
case 6:
System.out.println("Sexta");
break;
case 7:
System.out.println("Sábado");
break;
default:
System.out.println("Valor inválido, deve estar entre 1 e 7");
break;
}
}
Ou mais simples ainda, usar um array com os dias:
Scanner s = new Scanner(System.in);
String[] dias = {"Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"};
while (true) { // repete "indefinidamente"
// use o tamanho do array em vez de um valor fixo (assim, se mudar a lista de dias, o código não precisa mudar)
System.out.printf("Digite um numero de 1 a %d (ou 0 para sair)\n", dias.length);
int i = s.nextInt();
if (i == 0) {
break; // se digitar zero, sai do while
} else if (1 <= i && i <= dias.length) {
System.out.println(dias[i - 1]);
} else {
System.out.printf("Valor inválido, deve estar entre 1 e %d\n", dias.length);
}
}
Assim eu acho melhor porque se a lista de dias mudar, o restante do código permanece igual (além de ficar mais sucinto).