Ir para conteúdo
Fórum Script Brasil
  • 0

Código Básico


rodfraga

Pergunta

Galera, olha só, eu comprei um livrinho na banca de jornal, por 9,90(não pode ser lá grandes coisa né? laugh.gif )

Então, já faz umas duas semanas que escrevi esse código:

public class Coisas{
     public static void main(String args[]){
          if(args[0]=="Java"){
               System.out.println("Sun");
          } else if(args[0]=="VB"){
               System.out.println("Microsoft");
          } else if(args[0]=="Rodrigo"){
               System.out.println("Sou eu tentando aprender");
          }
     }
}

É meu primeiro código fora o Hello World. Estou usando o array args, pois se eu usar uma variável, retorna em qualquer execução(java Coisas parametro) o seguinte erro:

Exception in thread "main" java.lang.NoSuchMethodError: main

Não consegui decifrar o erro. Então, uso arrays.

Agora chamando a classe assim:

java Coisas

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at Coisas.main(Coisas.java:3)

Acho que é porque não forneço parâmetros. Então boto assim:

Java Coisas Rodrigo

E o DOS não apresenta erros, mas não executa nada.

Ele simplesmente abre mais uma vez o espaço para você inserir comandos do DOS.

Vale lembrar que o código foi escrito com o que li no livro, mas quem escreveu fui eu.

alguém pode ajudar?

Obrigado

Rodrigo

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Hum entendi. Fiz e deu certo, obrigado. Porém, ele continua não dando erros, apenas não fazendo nada. Por exemplo, eu digito como parâmetro:

Java

Ele deveria retornar "Sun", porém não, ele não faz nada e pede para apertar alguma tecla para continuar.

Também tenho o seguinte código:

public class teste{
	public static void main(String n[]){
  if (n[0]=="a"){
  	System.out.println("Primeira Letra");
  } else {
  	System.out.println("Sei lá");
  } 
	}
}

Eu chamo com parametro b ele responde "Sei lá". Se eu chamar como parâmetro a letra a, ele devia responder Primeira Letra, mas responde "Sei lá".

Por isso eu desconfio que com os dois códigos que recebem parâmetros e tratam com if's, deve haver algum erro de estrutura, já que ele não retorna o que era esperado.

EDITADO

Parece que pelo que eu entendi, ele não está "achando" o parâmetro passado(a) igual a "a". Não sei porque. Tanto que no primeiro código, no qual não existe else para contornar todas as outras possibilidades, ele não faz nada, já no segundo, quando existe, ele o utiliza, já que a é diferente de a(é o que parece ser para o pc). Só que a não é diferente de a blink.gif

Link para o comentário
Compartilhar em outros sites

  • 0
Tinha testado o primeiro e ele ralmente não estava chamando vou testar esse agora para ver.

haaaaaaaaaaaaaaaaaaa

desculpa é que é meu 100º post

Valeuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

Ok, obrigado

laugh.gif Parabéns pelo 100° post!

Link para o comentário
Compartilhar em outros sites

  • 0

Seguinte aragorn, Strings não se comparam com ==. Ao invés disso, use:

String a, b;
return a.equals(b);
E pra capturar quando o cara não digitar nada, faz um bloco try catch. Resumindo:
public class Coisas{
   public static void main(String args[]){
      try {
         if (args[0].equals("Java")) {
            System.out.println("Sun");
         } else if (args[0].equals("VB")) {
            System.out.println("Microsoft");
         } else if (args[0].equals("Rodrigo")) {
            System.out.println("Sou eu tentando aprender");
         }
      } catch (ArrayIndexOutOfBoundsException e) {
         System.out.println("Coloque um parametro!");
     }
   }
}

Espero que isso ajude. Deu certo aqui.

Ah sim, baixe o Firerox. tongue.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Só esclarecendo melhor:

Por que você não pode usar o comparador (==) ?

Porque String é uma classe (letra maiuscula!). Sendo assim, cada palavra entre aspas duplas é uma instancia dessa classe. Dessa forma, o == compara se duas instancias são na verdade a mesma, ao invés de comparar o conteudo de cada instancia.

Além do método .equals(...) também existe o .equalsIgnoreCase(...). Muito util. wink.gif

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...