Estou lendo um livro de Java básico e para praticar comecei a fazer um joguinho de rpg bem besta.
Enfim, tem uma condição do do_while que a meu ver parece que ignora e fica em um ciclo infinito
no while escrevo assim:
do {
.
.
. um monte
. de coisa
.
.
} while ((variavel1 > 1) || (variavel2 > 1);
obs.:
____variavel1 = -32
____public static void main(String args[]) <-- não sei direito o que isso faz, mas quando mudo os colchetes para o “String” parece que muda alguma coisa :lol:
____import java.util Scanner;
____do resto é só if while e variaveis pra lah e pra cá
simplesmente ele continua fazendo o ciclo
q diabos está acontecendo?
Boa noite, você esta utilizando || (or/ou) oi seja, se a variavel1 ou a variavel2 ser maior que zero ele continua.
Bom meu caro, a zica pelo jeito está na variavel2, pois a primeira nitidamente está fora do laço.
Como foi citado, pela lógica do operador || (or) se alguma das duas satisfazerem a afirmação o loop continuará.
Nao sei o que tem dentro deste código, mas pode ter algum erro de lógica.
As vezes vc simplesmente não está decrementando a variavel2, como por exemplo:
variavel2 -= 1; //Que é igual a variavel2 = variavel2 - 1
Estou chutando um possível erro, sei lá se estou certo.
Boa sorte com o projeto e bons estudos.
Uma boa idéia nesses casos é usar o depurador e testar se suas variáveis estão mesmo nos valores esperados, rodar o código passo a passo, e conferir se tudo está dentro dos conformes.
Procure na internet, há videos explicando como usar os depuradores do Eclipse e do Netbeans.
Galera vlw , foi ignorância mesmo "^^
estou acostumado com VBA, não tentei ou pesquisei se da pra colocar assim } while ((variavel1 >= 1 = TRUE) && …);
no java pelo que parece é sempre TRUE, pelo menos no livro que estou lendo não apareceu nada parecido
mas valeu o erro era o operador lógico mesmo
No java a comparação é feita com ==.
= é para atribuição.
Sua expressão faz uma atribuição ao final, e o resultado da atribuição é o valor atribuído.
Você teria que fazer:
(variavel1 >= 1) == true
Ou, simplesmente:
variavel1 >= 1