Oi pessoal, estou com uma duvida no switch case… o lance e o seguinte, tenho q digitar um numero q me retorne um mes (ex: se eu digitar “1” o programa vai retornar “Janeiro”), enfim, tudo vai bem ate chegar ao mes de outubro… qual sera o problema? sera q ele nao aceita dois caracteres? (no caso 10, 11 ou 12)??? Me ajudem!!!
if(args.length>0){switch(args[0].charAt(0)){case'1':System.out.println("Janeiro");break;case'2':System.out.println("Fevereiro");break;case'3':System.out.println("Marco");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("Nao e valido");}}elseSystem.out.println("Valor nao valido");}}
qdo eu digito 10, 11 ou 12 ele nao escreve os meses referentes… e qdo eu compilo ele acusa erro por eu ter colocado case ‘10’ ou 11 ou 12
obrigada a todos
pcalcado
O erro não é no switch, é no caracter. Você está tentnado usar o caracter ‘10’, mas aí são dois caracteres: ‘1’ e ‘0’
Tente utilizar inteiros aoi invés de caracteres, e fazer seus case com ele.
vimorrison
Desculpe a minha ignorancia, mas como eu declaro isso? Quero dizer como eu declaro q eu quero a juncao dos caracteres 1 e 0? Seria case ‘1’&&‘0’ ou algo assim?
bjaoeobrigada
dsiviotti
Ao invés de
case'10':
System.out.println("Outubro");break;
faça
case10:System.out.println("Outubro");break;
sem aspas
dsiviotti1 like
agora eu vi que você está pegando o argumento da main. acho que pode ser assim:
Foi mal, o código anterior dá pau por causa do char. Assim tá melhor:
publicclassMes{publicstaticvoidmain(String[]args){if(args.length>0){Strings=newString(args[0]);inti=Integer.parseInt(s);switch(i){case1:System.out.println("Janeiro");break;case2:System.out.println("Fevereiro");break;case3:System.out.println("Marco");break;case4:System.out.println("Abril");break;case5:System.out.println("Maio");break;case6:System.out.println("Junho");break;case7:System.out.println("Julho");break;case8:System.out.println("Agosto");break;case9:System.out.println("Setembro");break;case10:System.out.println("Outubro");break;case11:System.out.println("Novembro");break;case12:System.out.println("Dezembro");break;default:System.out.println("Nao e valido");}}}}
vimorrison
Agradeco muito a sua ajuda, mas nao sei o q houve, copiei o seu codigo, compilei e ele nao me mostra mais nem o mes de janeiro qdo eu coloco 1… reparei q vc nao colocou aspas, entao eu tentei colocar pra ver se funcionava… tb nao funcionou!! O q sera q esta havendo???
bjao
T
Tecnoage
Olá viviane… Acho que conheço o seu problema…
Se vc usa alguma IDE, esqueça por enquanto.
Compile o código do nosso colega Douglas e utilize a seguir o comando
java Mes <numero_do_mes> afinal, vc utiliza o args como arguimento. È batata, dá certinho… Testei agorinha
Bjos
Orlando
vimorrison
Eu estou usando o JCreator pra fazer esses programas… qdo eu compilo ele abre uma janela ja pra colocar os parametros do programa (no caso o numero do mes q eu quero)… nao entendi como eu vou usar o comando q vc falou… essa coisa nao funciona de JEITO NENHUM!
toferrada,tenhoqentregarissoamanha!!!!
mas obrigada assim mesmo
Viviane Saraiva
T
Tecnoage
Viviane, eu tb testei no JCreator, e foi isso que deu errado.
1- cole o código no bloco de notas e salve em C: como Mes.java
2- utilize o comando javac Mes.java
3- digite java Mes 1
4- para testas o 2º dígito utilize java Mes 12
5- chuchubeleza
certo?
Bjocas
Orlando
vimorrison
Nao fique bravo comigo, por favor, afinal sou iniciante… mais uma pergunta…
2- utilize o comando javac Mes.java --ABRO UMA JANELA DO DOS PRA ISSO???
3- digite java Mes 1 – AINDA NO DOS???
4- para testas o 2º dígito utilize java Mes 12 – NO DOS???
Vê lá menina, também sou iniciante… Olha, você não usou nenhum tipo de interface com o usuário, então seu programa rodará em modo console, ou seja, pela telinha do DOS. Como vc usou o args[] como parâmetro, terá de inserir um argumento, e isso é feito via DOS por enquanto. ou Seja,
java Mes 12
este seu programa sempre rodará pelo DOS.
ainda não funcionou? poste detalhes então baby
a propósito, gostri do seu site
Bjocas
vimorrison
Ah ja to desistindo… fui no DOS e fiz exatamente isso… e nao funciona… fiz o lance pra compilar, ele tb nao compila… ou seja, nada acontece…
Ah, deixa pra la
Ah,
So adicionando
Você compila pelo JCreator mesmo… Pega o seu arquivo Mes.class e coloco no C:\ por exemplo
depois você abre o dos (se for no WinXP ou Win2000 basta digitar cmd no Iniciar>>Executar)
Após isso digite o seguinte
C:javaMes5javaMes1JavaMes12
E assim vai, ou seja o que você digitar depois do Mes será o mes e lembre-se que o nome da classe, nesse caso o Mes tem que ser escrito da mesma forma do .class
Espero te ajudado
K
Kabaldf
dsiviotti:
Foi mal, o código anterior dá pau por causa do char. Assim tá melhor:
publicclassMes{publicstaticvoidmain(String[]args){if(args.length>0){Strings=newString(args[0]);inti=Integer.parseInt(s);switch(i){case1:System.out.println("Janeiro");break;case2:System.out.println("Fevereiro");break;case3:System.out.println("Marco");break;case4:System.out.println("Abril");break;case5:System.out.println("Maio");break;case6:System.out.println("Junho");break;case7:System.out.println("Julho");break;case8:System.out.println("Agosto");break;case9:System.out.println("Setembro");break;case10:System.out.println("Outubro");break;case11:System.out.println("Novembro");break;case12:System.out.println("Dezembro");break;default:System.out.println("Nao e valido");}}}}
Para fazer esse código funcionar sem ter que passar o parametro pelo DOS (Pode compilar e rodar pelo JCreator mesmo)
Faça da seguinte forma:
importjavax.swing.*;publicclassMain{publicstaticvoidmain(String[]args){inti=Integer.parseInt(JOptionPane.showInputDialog("Entre com o mês"));switch(i){case1:System.out.println("Janeiro");break;case2:System.out.println("Fevereiro");break;case3:System.out.println("Marco");break;case4:System.out.println("Abril");break;case5:System.out.println("Maio");break;case6:System.out.println("Junho");break;case7:System.out.println("Julho");break;case8:System.out.println("Agosto");break;case9:System.out.println("Setembro");break;case10:System.out.println("Outubro");break;case11:System.out.println("Novembro");break;case12:System.out.println("Dezembro");break;default:System.out.println("Nao e valido");}}}
E da forma de Array
importjavax.swing.*;classMes{publicstaticvoidmain(String[]args){String[]meses={"Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"};intindice=Integer.parseInt(JOptionPane.showInputDialog("Entre com o mês"));System.out.println(meses[indice]);}}
Bem, agora vou mimi!
Espero te ajudado!
ystaile
Bom, do jeito que o [color=red]dsiviotti[/color] colocou da certinho…essa janelinha que aparece quando vc compila é pra entrada via args…bom era pra funcionar…ja tentou usar o JOptionPane? é melhor!