Estou realizado o Curso Java Starter, pois tenho dificuldades bobas com esse início (while, switch,etc) e estou fazendo os exercícios aos poucos pra que possa amadurecer este conhecimento.
Gostaria da ajuda de vocês com o seguinte código:
Minha dúvida é a seguinte, pede-se pra poder solicitar um número repetidamente e dizer qual é o mês correspondente, e caso o número esteja fora do intervalo, mês inválido.
Isso acontece, mas esta correto?
Obrigado pela ajuda desde já.
@param args the command line arguments
*/
public static void main(String[] args) {
/05 - Implemente um programa que recebe repetidamente um número de 1 a
12, enquanto esse número for diferente de 0 (zero), e imprime o mês correspondente.
Quando o número estiver fora do intervalo permitido, a mensagem ?mês inválido?
deverá ser exibida./
Scanner entrada = new Scanner(System.in);
int numero = 0;
while(numero != 0);{
System.out.println("Informe um número para verificar o Mês Correspondente: ");
numero = entrada.nextInt();
switch (numero){
case 1:
System.out.println("Janeiro");
break;
case 2:
System.out.println("Fevereiro");
break;
case 3:
System.out.println("Março");
break;
case 4:
System.out.println("Abril");
break;
case 5:
System.out.println("Maio");
break;
case 6:
System.out.println("Junho");
break;
case 7:
System.out.println("Julho");
break;
case 8:
System.out.println("Agosto");
break;
case 9:
System.out.println("Setembro");
break;
case 10:
System.out.println("Outubro");
break;
case 11:
System.out.println("Novembro");
break;
case 12:
System.out.println("Dezembro");
break;
default:
System.out.println("Mês Inválido");
}
Seu programa nunca vai entrar no while deste jeito. Você precisa colocar o seguinte trecho de código antes do while:
System.out.println("Informe um número para verificar o Mês Correspondente: ");
numero = entrada.nextInt();
ou então;
int numero = 1; //OU QUALQUER NUMERO DIFERENTE DE 0
Pois no while vc está testando se é diferente de ZERO. Como voce atribuiu à variavel numero o valor 0, nunca executará. Você precisa ler o valor do usuário ou atribuir um valor inicial diferente de ZERO para que entre no while pelo menos uma vez.
@param args the command line arguments
*/
public static void main(String[] args) {
/05 - Implemente um programa que recebe repetidamente um número de 1 a
12, enquanto esse número for diferente de 0 (zero), e imprime o mês correspondente.
Quando o número estiver fora do intervalo permitido, a mensagem ?mês inválido?
deverá ser exibida./
Scanner entrada = new Scanner(System.in);
int numero = 0;
System.out.println("Informe um número para verificar o Mês Correspondente: ");
numero = entrada.nextInt();
while(numero != 0){
switch (numero){
case 1:
System.out.println("Janeiro");
break;
case 2:
System.out.println("Fevereiro");
break;
case 3:
System.out.println("Março");
break;
case 4:
System.out.println("Abril");
break;
case 5:
System.out.println("Maio");
break;
case 6:
System.out.println("Junho");
break;
case 7:
System.out.println("Julho");
break;
case 8:
System.out.println("Agosto");
break;
case 9:
System.out.println("Setembro");
break;
case 10:
System.out.println("Outubro");
break;
case 11:
System.out.println("Novembro");
break;
case 12:
System.out.println("Dezembro");
break;
default:
System.out.println("Mês Inválido");
}
...
int numero = 1 // atribui o valor 1 e nao zero inicialmente
while (numero !=0 ){ // enquanto o numero for diferente de 0
System.out.println...
switch(numero){
case 0:
System.exit(0);
...
Scanner entrada = new Scanner(System.in);
int numero = 1;
while(numero != 0){
System.out.println("Informe um número para verificar o Mês Correspondente: ");
numero = entrada.nextInt();
switch (numero){
case 1:
System.out.println("Janeiro");
break;
case 2:
System.out.println("Fevereiro");
break;
case 3:
System.out.println("Março");
break;
case 4:
System.out.println("Abril");
break;
case 5:
System.out.println("Maio");
break;
case 6:
System.out.println("Junho");
break;
case 7:
System.out.println("Julho");
break;
case 8:
System.out.println("Agosto");
break;
case 9:
System.out.println("Setembro");
break;
case 10:
System.out.println("Outubro");
break;
case 11:
System.out.println("Novembro");
break;
case 12:
System.out.println("Dezembro");
break;
default:
System.out.println("Mês Inválido");
}
}
@param args the command line arguments
*/
public static void main(String[] args) {
/05 - Implemente um programa que recebe repetidamente um número de 1 a
12, enquanto esse número for diferente de 0 (zero), e imprime o mês correspondente.
Quando o número estiver fora do intervalo permitido, a mensagem ?mês inválido?
deverá ser exibida./
Scanner entrada = new Scanner(System.in);
int numero = 1;
while(numero !=0){
System.out.println("Informe um número para verificar o Mês Correspondente ou 0 \npra sair do Sistema: ");
numero = entrada.nextInt();
switch (numero){
case 1:
System.out.println("Janeiro");
break;
case 2:
System.out.println("Fevereiro");
break;
case 3:
System.out.println("Março");
break;
case 4:
System.out.println("Abril");
break;
case 5:
System.out.println("Maio");
break;
case 6:
System.out.println("Junho");
break;
case 7:
System.out.println("Julho");
break;
case 8:
System.out.println("Agosto");
break;
case 9:
System.out.println("Setembro");
break;
case 10:
System.out.println("Outubro");
break;
case 11:
System.out.println("Novembro");
break;
case 12:
System.out.println("Dezembro");
break;
default:
System.out.println("Mês Inválido");
case 0:
System.exit(numero);
}
Pessoa, dentro do que está pedindo o enunciado, vê se tem alguma solução melhor:
/08 - Escreva um programa que percorra dois laços de 0 a 10, um interno ao
outro, imprimindo os contadores, e quando estes forem iguais, o programa deve
passar à próxima interação do laço mais externo, caso contrário, deve imprimir os
valores dos contadores dos dois laços./
[code]package exercicio8;
/**
*
@author jean.carlos
*/
public class Main {
/**
@param args the command line arguments
*/
public static void main(String[] args) {
/08 - Escreva um programa que percorra dois laços de 0 a 10, um interno ao
outro, imprimindo os contadores, e quando estes forem iguais, o programa deve
passar à próxima interação do laço mais externo, caso contrário, deve imprimir os
valores dos contadores dos dois laços./
Concordo com alex.bhte . Quando vc quiser que a aplicação entre pelo menos uma vez no laço é melhor usar do-while. Não que usar while nesse caso seja um erro, pq n é. Poém veja que vc forçou na linha 21 atribuindo o valor 1 para a variável número apenas para entrar no laço pq no while vc n tem o direito de testar pelo menos uma vez se a condição for falsa, diferente do do-while. do-while e while são estruturas de repetição que possuem mesma lógica, variando a situação. Fique tranquilo que vc aprender rápido. é só ficar ligado nessa “manha” :
do-while -->>Quando quero pelo menos entrar uma vez no laço
while–>> Quando não é preciso entrar pelo menos uma vez no laço