Probleminha IF..ELSE

9 respostas
I
import java.util.Scanner;
public class JOGO {
	Scanner entrada = new Scanner(System.in);
	
	
	public void Jogo(int paupite){
	int numero = (int) (Math.random()*100);

				if (paupite > 100 || paupite < 0){
					System.out.println("O NÚMERO ESTOROU O LIMITE ENTRE 0 E 100");
				}
			     while (numero != paupite){
			    	 	if(paupite > numero){
							int xo = 0;
							int x = 0;
							System.out.printf("VOCÊ ERROU O NÚMERO!\n" +
									"O NÚMERO ESTA ENTRE: %d e %d\n",xo,paupite,"DIGITE O PRÓXIMO: \n");
							x = paupite; //PRESCISOOOO GUARDARRR ESSE VALOR!!!!!!!!!!!!!!
							paupite = entrada.nextInt();}
						    
			    	 	   else{
							System.out.printf("VOCÊ ERROU O NÚMERO!\n" +
									"O NÚMERO ESTA ENTRE: %d e %d\n",x,paupite,"DIGITE O PRÓXIMO: \n"); //PARA USAR O MESMO NESSA LINHA!!!!
							paupite = entrada.nextInt()
						}
						if (paupite == numero){
							System.out.println("PARABÉNS VOCÊ ACERTOU O NÚMERO");} //FIM IF1
	   }//FIM WHILE
	}//FIM METODO
//FIM CLASSE

AMIGOS, preciso de uma grande ajuda presciso guardar um conteudo de uma variavel do if, para usar no else.. por favor como faço?? OBG!

9 Respostas

thundercas

Não entendi sua dúvida cara. Guardar uma variável de um if e usá-la dentro de um else??? Declare a variável fora dos 2 laços e conseguirá isso.

abraços

fiaux

Você tem que declarar fora do if. Não sei se entendi direito, mas você quer atualizar o valor da variável no if para depois usar no else desse if? Não vai dar.

odair.bonin

E ai amigo … td bem ?
Basta usar uma variável fora do IF, ou seja, antes.

import java.util.Scanner;   
public class JOGO {   
    Scanner entrada = new Scanner(System.in);   
       
       
    public void Jogo(int paupite){   
    int numero = (int) (Math.random()*100);   
    int ultimoPalpite;
                if (paupite > 100 || paupite < 0){   
                    System.out.println("O NÚMERO ESTOROU O LIMITE ENTRE 0 E 100");   
                }   
                 while (numero != paupite){   
                        if(paupite > numero){   
                            int xo = 0;   
                            int x = 0;   
                            System.out.printf("VOCÊ ERROU O NÚMERO!\n" +   
                                    "O NÚMERO ESTA ENTRE: %d e %d\n",xo,paupite,"DIGITE O PRÓXIMO: \n");   
                            x = paupite; //PRESCISOOOO GUARDARRR ESSE VALOR!!!!!!!!!!!!!!
                            ultimoPalpite = x;
                            paupite = entrada.nextInt();}   
                               
                           else{   
                            System.out.printf("VOCÊ ERROU O NÚMERO!\n" +   
                                    "O NÚMERO ESTA ENTRE: %d e %d\n",x,paupite,"DIGITE O PRÓXIMO: \n"); //USE A VARIAVEL ultimoPalpite. 
                            paupite = entrada.nextInt()   
                        }   
                        if (paupite == numero){   
                            System.out.println("PARABÉNS VOCÊ ACERTOU O NÚMERO");} //FIM IF1   
       }//FIM WHILE   
    }//FIM METODO   
//FIM CLASSE

Qualquer problema, avise ai !
Abraço

I

Deixa eu ve se eu explico.. issu e um joguinhu nao sei se vcs conhecem. o nome dele e de 0 a 100..

supondo... um jogador..

O PROGRAMA CRIA UMA VARIAVEL X ALEATORIA DE 0 A 100.. (supondo que ele escolhe o 12)

o programa pergunta ao usuario.. Qual o numero que vc chuta?? eu escolho 89.
o programa retorna falando: vc errou, mais o numero esta entre 0 e 89.Qual o numero que vc chuta??
eu escolho 13
o programa retorna falando: vc errou, mais o numero esta entre 0 e 13.Qual o numero que vc chuta??
eu escolho 7

AI ESTA O PROBLEMA pois o programa teria que falar

vc errou, mais o numero esta entre 7 e 13.Qual o numero que vc chuta??

e para issu eu teria que guardar um numero do if.. e usar no else..

em baixo vaiii oque eu fiz..

import java.util.*;
public class JOGADORES {
	public static void main (String[] args){
	Scanner entrada = new Scanner(System.in);
	
	int num = 0;
	
	System.out.printf("QUAL NO NÚMERO QUE VC ACHA QUE SEJA??:");
	num = entrada.nextInt();
	
	JOGO PaUpite = new JOGO();
	PaUpite.Jogo(num);
	}
}
import java.util.Scanner;
public class JOGO {
	Scanner entrada = new Scanner(System.in);
	
	
	public void Jogo(int paupite){
	int numero = (int) (Math.random()*100);

				if (paupite > 100 || paupite < 0){
					System.out.println("O NÚMERO ESTOROU O LIMITE ENTRE 0 E 100");
				}
			     while (numero != paupite){
			    	 	if(paupite > numero){
							int xo = 0;
							int x = 0;
							System.out.printf("VOCÊ ERROU O NÚMERO!\n" +
									"O NÚMERO ESTA ENTRE: %d e %d\n",xo,paupite,"DIGITE O PRÓXIMO: \n");
							x = paupite; //PRESCISOOOO GUARDARRR ESSE VALOR!!!!!!!!!!!!!!
							paupite = entrada.nextInt();}
						    
			    	 	   else{
							System.out.printf("VOCÊ ERROU O NÚMERO!\n" +
									"O NÚMERO ESTA ENTRE: %d e %d\n",x,paupite,"DIGITE O PRÓXIMO: \n"); //PARA USAR O MESMO NESSA LINHA!!!!
							paupite = entrada.nextInt()
						}
						if (paupite == numero){
							System.out.println("PARABÉNS VOCÊ ACERTOU O NÚMERO");} //FIM IF1
	   }//FIM WHILE
	}//FIM METODO
//FIM CLASSE

EU CONSEGUINDO PEGAR ESSE VALOR DO IF.. EU CONSEGUIRIA TEMRINAR O PROBLEMA TRANQUILO.. OU SE O JAVA USASE PONTEIROS TBM DARIA... =/

muituu obrigado pela atenção de todos! =)

B

C tem ponteiros e nem assim você conseguiria pegar a variável desse jeito. Sem falar no printf no meio do programa.

Use um if para comparar se o palpite é menor, um else if se ele for maior, um else quando ele acertar.

I

nossa to pra desistir… desse programa…=///

I

supondo que o x fosse 4, fica impossivel o programa falar o numero esta entre 2 e 6.

=////

ou seria?? alguem tem alguma solucao?

B

Sei que estou respondendo por você, mas valeu a brincadeira. Este exemplo também serve pra mostrar algumas construções do Java, e como usá-las.

package jogo;

import java.util.InputMismatchException;
import java.util.Random;
import java.util.Scanner;

public class JogoAdivinhacao {

    // Qualquer programa em java começa por aqui
    public static void main(String[] args) {
        
        // Instanciando esta própria classe
        // poderia ser outra em outro arquivo, mas tô com preguiça
        JogoAdivinhacao jogo = new JogoAdivinhacao();

        boolean jogarNovamente;

        // Conhece o bloco do...while? Ele entra primeiro e pergunta depois.
        do {
            jogo.comecar();

            System.out.println("Gostaria de jogar novamente? (true/false) ");

            // Só funciona se o jogador digitar true ou false, qqr
            // outra coisa ele pega a exceção e a trata como se tivesse
            // escrito false
            try {
                jogarNovamente = entrada.nextBoolean();
            } catch (InputMismatchException e) {
                jogarNovamente = false;
            }
        } while (jogarNovamente);

        System.out.println("Volte sempre!");
    }

    private Random gerador;
    // estático p/ poder ser usado dentro do main
    private static Scanner entrada;

    // Bloco de execução estática, é a primeira coisa a ser executada
    // aqui serve para instanciar o Scanner, que é estático também
    static {
        entrada = new Scanner(System.in);
    }

    // Construtor da classe
    public JogoAdivinhacao() {
        gerador = new Random();
    }

    public void comecar() {
        int menor = 0;
        int maior = 99;
         // começando com um valor inválido p/ ele entrar no while
        int paupite = -1;

        // gera entre 0 e 99
        int numeroAdivinhar = (int) (100 * gerador.nextDouble());

        // enquanto não acertar
        while (paupite != numeroAdivinhar) {
            System.out.println("O número está entre " + menor + " e " + maior + ".");
            System.out.println("Qual é o teu paupite? ");
            paupite = entrada.nextInt();

            // Fazendo o jogador jogar limpo.
            while (paupite < menor || paupite > maior) {
                System.out.println("O limite é entre " + menor + " e " + maior + ". Tente novamente!");
                System.out.println("Qual é o teu paupite? ");
                paupite = entrada.nextInt();
            }

            // Estes dois aqui fazem o trabalho de diminuir a faixa de numeros
            // a adivinhar, preste atenção na lógica deles!
            if (paupite < numeroAdivinhar) {
                System.out.println("Você errou!");
                menor = paupite;
            } else if (paupite > numeroAdivinhar) {
                System.out.println("Você errou!");
                maior = paupite;
            }
        }
        // Uhhh hulll!!! :P
        System.out.println("Você acertou!\n");
    }
}
I

renrutal valeu…
vou da um estudaaa!!!
e ve como ele funciona!

:smiley:

Criado 29 de abril de 2008
Ultima resposta 30 de abr. de 2008
Respostas 9
Participantes 5