Porque goto é uma keyword do java?  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
**Popeye12345**
GUJ Master

Membro desde: 30/03/2008 20:56:41
Mensagens: 1293
Offline

Galera,

há um bom tempo tô familiarizado com isso, goto é uma palavra chave do Java.

Mas porque diabos ela existe no java se não tem uso algum? Porque é reservada?

valeu.

unnamed.

there are so many monkeys at guj.
alucardeck
GUJ Master
[Avatar]

Membro desde: 23/01/2007 00:49:50
Mensagens: 1023
Localização: Santos-SP
Offline

até onde eu sei...
algumas versões antigas do Java... "zuavam" o C... por causa do comando Goto

dizem as más linguas... q retornava uma mensagem na tela..
"Vai aprender a programar!" (em ingles)

jah q realmente eh um absurdo usar o goto em C... e dizer q é um programador fazendo isso =P



nao sei ao certo se tem utilidade no Java

The road to hell is full of good intentions
Say farewell, we may never meet again

jChat Malandrinho --> http://www.guj.com.br/posts/list/100549.java
Linkedin --> http://br.linkedin.com/pub/diogo-facin/26/436/113
Bruno Laturner
GUJ Expert
[Avatar]

Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline

Edit:

Ummm, estou confundindo eles com elas. Leia mais abaixo.

This message was edited 2 times. Last update was at 23/06/2008 13:26:42


A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra
[WWW]
RaulCarlin
JavaEvangelist
[Avatar]

Membro desde: 20/05/2005 12:58:30
Mensagens: 389
Localização: São Paulo
Offline

Eu não conheço nenhuma exlpicação "técnica", só a que se UM DIA alguém for implementar goto ou const por em Java, não vai haver problemas porque ninguém vai ter usado esses termos como identificadores em códigos antigos...

E pra mim é a única explicação plausível... :/ Veja o enum, não era e virou de repente, fazendo muita gente mudar código pra migrar pra Java 5...
[WWW]
Bruno Laturner
GUJ Expert
[Avatar]

Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline

Lendo melhor por aqui:

goto é reservado simplesmente p/ ninguém usar ele.

break e continue fazem o trabalho se substituir ele, quando usados com um label.

A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra
[WWW]
blackfalcon
JavaEvangelist
[Avatar]

Membro desde: 01/04/2008 21:08:28
Mensagens: 347
Offline

Bruno Laturner wrote: Como não tem uso? Basta definir um label e usar o goto que ele funciona.

Continue e break, se não me engano, também funcionam com labels.

Edit:

Ummm, estou confundindo eles com elas.


Cara, goto nao é usado hoje mais porque é chamado de "Má pratica de Programação"...

As pessoas que o usavam com frequencia se perdia no programa quando ia depura-lo, por isso que tem essa discussao sobre esse bendito comando...

O mesmo que voce faz com ele, voce pode fazer com outros comandos, entao nao é aconselhavel usar...

Abraços
**Popeye12345**
GUJ Master

Membro desde: 30/03/2008 20:56:41
Mensagens: 1293
Offline

blackfalcon wrote:
Bruno Laturner wrote: Como não tem uso? Basta definir um label e usar o goto que ele funciona.

Continue e break, se não me engano, também funcionam com labels.

Edit:

Ummm, estou confundindo eles com elas.


Cara, goto nao é usado hoje mais porque é chamado de "Má pratica de Programação"...

As pessoas que o usavam com frequencia se perdia no programa quando ia depura-lo, por isso que tem essa discussao sobre esse bendito comando...

O mesmo que voce faz com ele, voce pode fazer com outros comandos, entao nao é aconselhavel usar...

Abraços

Sobre isso de GOTO em Java antigo gerar mensagens como "Vá aprender a programar", eu não acho que acontecesse de verdade, pois um processo nas costas é uma coisa de que a Sun sempre foge. Talvez em alguma home made tenha tido isso, mas duvido muito na implementação original.

Ninguém usa mais GOTO porque é um erro lógico. Sem contar que se você for pegar alguns códigos, tem uns 80 GOTO inserido. Ai como que faz pra ficar viajando de tela o tempo todo?

Mas cara, eu ainda não entendi e nem vi motivos para ser reservado. Pode ser reservado sim, mas e o motivo? Não usar? Só um louco ia usar isso e achar que ia ter algum retorno. Nem que ele fizesse um método pra implementar goto. mas isso já não é problema da linguagem, mas sim da cabeça do programador.

Const eu até entendo porquê seja, mas goto...

Se alguém souber mais alguma hipótese... Explane-se, por favor!

unnamed.

there are so many monkeys at guj.
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

Sergio Figueras wrote:
Mas porque diabos ela existe no java se não tem uso algum? Porque é reservada?


Como já foi dito, ela é reservada para ninguem a usar como nome de variável.
Se usada como comando dá erro.

Outra palavra que é reservada e não serve para nada é const

Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
**Popeye12345**
GUJ Master

Membro desde: 30/03/2008 20:56:41
Mensagens: 1293
Offline

Sim cara, mas porquê ninguém pode utilizar goto como nome de variável, mesmo que fique confuso, eu posso criar uma chamada function ou procedure que ele não reclama. né?

unnamed.

there are so many monkeys at guj.
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

Sergio Figueras wrote:Sim cara, mas porquê ninguém pode utilizar goto como nome de variável, mesmo que fique confuso, eu posso criar uma chamada function ou procedure que ele não reclama. né?


como já foi dito é uma inclusão historica. Ao colocar como reservada não pode ser usada como variável. Ou seja, "não deixe o programador se lembrar se usar coisas goto-like". Então a opção é usar como comando. Ao fazer isso o java se queixa. Então o uso de goto é completamente impossivel em java, em qualquer forma ou instancia.

Isto é o reflexo do java ser uma linguagem de principios ... "morais" ( à falta de palavra melhor) que tenta não apenas fazer, mas ensinar a fazer direito.

Entenda isso no mesmo nivel de porquê java não tem herança multipla ou porquê não tem numeros unsigned (além de char)
É tudo para evitar más práticas que eram habituais quando o java nasceu e sobretudo eram habituais entre os caras do C e C++ de onde o java deriva a sua sintaxe. É uma forma de dizer : "hei! java é OO e tem a sua própria personalidade: acostumem-se!"

Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
**Popeye12345**
GUJ Master

Membro desde: 30/03/2008 20:56:41
Mensagens: 1293
Offline

Eu, particularmente, acho isso meio inútil.

Porque cara, mesmo que o cara fosse usar goto, daria pau. Não vejo um sentido bom nisso, por mais que eles sejam o OH da programação que criaram isso, pra mim isso é besteira mesmo. Bem, vai da opinião de cada um.

unnamed.

there are so many monkeys at guj.
blackfalcon
JavaEvangelist
[Avatar]

Membro desde: 01/04/2008 21:08:28
Mensagens: 347
Offline

Sergio Figueras wrote:Eu, particularmente, acho isso meio inútil.

Porque cara, mesmo que o cara fosse usar goto, daria pau. Não vejo um sentido bom nisso, por mais que eles sejam o OH da programação que criaram isso, pra mim isso é besteira mesmo. Bem, vai da opinião de cada um.


Realmente... mas quem somos nós para questionar os poderosos?

Abraços
victorwss
JWizard
[Avatar]

Membro desde: 18/12/2007 14:46:00
Mensagens: 2409
Localização: São Paulo - SP
Offline

No livro da Kathy Sierra da SCJP explica. É algo mais ou menos assim:


Error: goto used, duh. You have no business in java program. Do you which to uninstall JDK now (Yes/Ok)?
Compilation failed *** 1 life altering error.


Obviamente, isso era para os compiladores java versão 0.8 e 0.9, de 1994 e 1995. No JDK 1.0 já tinha sido substituído por algo bem mais sem graça.


Error: goto unavaiable.
Compilation failed *** 1 error.

Victor Williams Stafusa da Silva

Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Doutorando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68% // SCBCD 5 - 31/05/2010 - PASS - 95%
Próximos: SCJD (encalhado com o projeto), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.

Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.

Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.


É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model).


Se você escreve "concerteza", "concerteza" você andou matando aulas de português.
[MSN]
**Popeye12345**
GUJ Master

Membro desde: 30/03/2008 20:56:41
Mensagens: 1293
Offline

Bem, fico esperando um dia que vao tirar esse tipo de coisa.

Quero ver quantas coisas inúteis Java terá daqui a uns 20 anos.

unnamed.

there are so many monkeys at guj.
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

Sergio Figueras wrote:Bem, fico esperando um dia que vao tirar esse tipo de coisa.

Quero ver quantas coisas inúteis Java terá daqui a uns 20 anos.


Tudo bem que depende de uma filosofia de vida o que vou dizer a seguir, mas, essas coisas não são inuteis.
É importante ser positivista, mas é mais importante entender que as negativas podem ser igualmente afirmativas.

This message was edited 1 time. Last update was at 24/06/2008 15:23:57


Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team