Dúvida de Iniciante

15 respostas
V

Olá amigos,
Estou no primeiro semestre de faculdade e estou com uma dúvida em um exercício. Fiz ele imprimindo em Dos e em Windows, porém no windows ele não funcionou, não consegui encontrar o erro.
Tenho que entrar com um código que é uma letra e um valor que é o raio, conforme a letra que eu digitar ele executa um calculo diferente.
Esta dando erro na compliação no Switch, mas como ainda não entendi muito bem o charAt(), não sei se escrevi a sintaxe correta.
Também acredito que a sintaxe de entrada de dados do raio não está correta.
Caso alguém possa me explicar aonde estou errando e se possível me mostrar a solução, agradeço.
Segue o código abaixo:


import javax.swing.*;

class Prova1

{

public static void main(String va[])

{

//Declaração de variaveis e constantes

double raio,c,a,v;

char cod ;

final double pi = 3.14;
//Entrada de dados
raio= Double.parseDouble(JOptionPane.showInputDialog("Digite o Raio",(va[0])));
cod = JOptionPane.showInputDialog("Entre com o código",(va[1].charAt(0)));

// Estrutura de Decisão para o calculo
 Switch (cod)
  {
   case 'x' : c = 2*pi*raio;
                  JOptionPane.showMessageDialog(c);//Saida de dados
                  break;

   case 'y' : a = pi*Math.pow(raio,2);
                  JOptionPane.showMessageDialog(a);//Saida de dados
                  break;
  
   case 'z' : v = (double)4/(double)3 * pi * Math.pow(raio,3);
                  JOptionPane.showMessageDialog(v);//Saida de dados
                  break;
   
   Default: JOptionPane.showMessageDialog("ERRO");//Saida de dados PARA ERRO
  
  }// Fim da estrutura case 

  System.exit(0);

}//Fim do void main
}//Fim da classe main

15 Respostas

Giulliano

Senhor iniciante…quando for postar códigos use as tags code…

assim viu...

Segunda coisa…java é independente de plataforma…se vc diz que roda em DOS então roda até no inferno com FreeBSD…basta ter a JRE instalada. Veja se o erro é com a sua JVM.

G

tenta com o default com o d minusculo …

—> Default: JOptionPane.showMessageDialog(“ERRO”);//Saida de dados PARA ERRO

}// Fim da estrutura case

System.exit(0);

fiaux

Outra coisa, O switch é com letra minúscula.

fiaux

Mais uma coisa, leia a API do JOptionPane, pois, do jeito que você usou não vai funcionar, já testei aqui o código.

http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JOptionPane.html

V

Ok Giuliano, é a primeira vez que posto uma dúvida na próxima corrijo isso.
Obrigado Guguuu e Fiaux, mas agora apresentou erro na entrada de dados na linha do charAt()

V

fiaux, obrigado pela dica, estou dando uma lida no arquivo

fiaux

Só por curiosidade, a variável PI você poderia usar a do pacote java.lang.Math Math.PI.

V

fiaux, testei sua dica utilizando o código que fiz com saida pelo Dos e funcionou, muito obrigado.
Poderia me ajudar com a entrada pelo Windows?

C
import javax.swing.*;
class Prova01
{
public static void main(String va[])
{
//Declaração de variaveis e constantes
double raio,c,a,v;
char cod ;
final double pi = 3.14;

//Entrada de dados
raio= Double.parseDouble(JOptionPane.showInputDialog("Digite o Raio"));
cod = JOptionPane.showInputDialog("Entre com o código" ).charAt( 0 );

// Estrutura de Decisão para o calculo
switch (cod)
{
case 'x' : c = 2*pi*raio;
JOptionPane.showMessageDialog(null, c);//Saida de dados
break;

case 'y' : a = pi*Math.pow(raio,2);
JOptionPane.showMessageDialog( null, a);//Saida de dados
break;

case 'z' : v = (double)4/(double)3 * pi * Math.pow(raio,3);
JOptionPane.showMessageDialog( null, v);//Saida de dados
break;

default: JOptionPane.showMessageDialog( null, "ERRO");//Saida de dados PARA ERRO

}// Fim da estrutura case

System.exit(0);
}//Fim do void main
}//Fim da classe main

Não testei os resultados para ver se estão certos, mas tá funcionando...

haroldojribeiro

Giulliano:

Segunda coisa…java é independente de plataforma…se vc diz que roda em DOS então roda até no inferno com FreeBSD…basta ter a JRE instalada. Veja se o erro é com a sua JVM.

apenas reforçando rs
Em java fala-se muito em “write once run anywhere”.

Não entendo qual a diferença que você está falando em saida pra DOS e WIN, cheque se seu classpath está configurado direitinho, pode ser que seja isso.

Espero ter Ajudado.
[]´s

C

haroldojribeiro:
Giulliano:

Segunda coisa…java é independente de plataforma…se vc diz que roda em DOS então roda até no inferno com FreeBSD…basta ter a JRE instalada. Veja se o erro é com a sua JVM.

apenas reforçando rs
Em java fala-se muito em “write once run anywhere”.

Não entendo qual a diferença que você está falando em saida pra DOS e WIN, cheque se seu classpath está configurado direitinho, pode ser que seja isso.

Espero ter Ajudado.
[]´s

Eu acho que ele quis dizer que fez uma versão do mesmo programa no modo texto e outra em modo gráfico, usando swing.

Abraços,

fiaux

Você usa alguma IDE? Acho que ninguém tá entendendo essa história de DOS e Win. Você compilou o programa na mão, rodou na mão? Agora quer saber como rodar no Windows? Tipo… dois cliques pra executar?

V

Obrigado pela ajuda de todos, com o material que foi indicado e os erros que me mostraram o programa funcionou.

V

Não me expressei bem eu quis dizer que fiz uma versão do mesmo programa no modo texto e outra em modo gráfico, usando swing.
Obriga Carnevalli, me ajudou a me expressar… rsrs

V

O código ficou assim:

import javax.swing.*; 
class Prova1 
 { 
  public static void main(String va[]) 
  { 
   //Declaração de variaveis e constantes 
   double raio,c,a,v; 
   char cod ; 
   

   //Entrada de dados 
   raio= Double.parseDouble(JOptionPane.showInputDialog("Digite o Raio"));   
   cod = JOptionPane.showInputDialog("Entre com o código" ).charAt( 0 );   


   // Estrutura de Decisão para o calculo 
   switch (cod) 
    { 
	 case 'x' : c = 2*Math.PI*raio; 
	            JOptionPane.showMessageDialog(null,c);//Saida de dados 
				break; 

     case 'y' : a = Math.PI*Math.pow(raio,2); 
				JOptionPane.showMessageDialog(null,a);//Saida de dados 
				break; 

	 case 'z' : v = (double)4/(double)3 * Math.PI * Math.pow(raio,3); 
				JOptionPane.showMessageDialog(null,v);//Saida de dados 
				break; 

	 default: JOptionPane.showMessageDialog(null,"ERRO");//Saida de dados PARA ERRO 

	}// Fim da estrutura case 

	 System.exit(0); 
   }//Fim do void main 
 }//Fim da classe main
Criado 27 de março de 2008
Ultima resposta 27 de mar. de 2008
Respostas 15
Participantes 6