[resolvido]Problema estrutura Do{}while

3 respostas
manolo

Pessoal, estou com uma dúvida com relaçao a estrutura de repetição.

O lance e o seguinte. Tenho que mostrar uma mensagem para o usúario caso a temperatura que ele informe seje menor do que 15º e maior do que 40º.

Só que o resultado esperado e mostrado de forma invertida! :evil:

Abaixo o código:

import java.util.Scanner;
public class Ex3 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		Scanner input = new Scanner(System.in);
		
		float temp[] = new float[121];
		int i = 0;
		
		
		for ( i = 0; i < temp.length; i++){
			do{
				System.out.println(" - Informe á temperatura do " + (i+1) + "º dia:");
				temp[i] = input.nextFloat();
			}while( temp[i] <= 15 || temp[i] >= 40);
			System.out.println(" - Informe uma temperatura maior do que 15º e menor do que 40º - ");
			
		}
	}
}

Alguém pode me ajudar a mostrar a mesnsagem apenas se a condiçao for verdadeira!

Obrigado!

3 Respostas

N

Veja se é algo assim que você quer:

import java.util.Scanner;

public class Ex3 {

    /**
     * @param args
     */
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        float temp[] = new float[5];
        int i = 0;

        do {
            System.out.println(" - Informe á temperatura do " + (i + 1) + "º dia:");
            float tf = input.nextFloat();
            if (!((tf <= 15) || (tf >= 40))) {
                temp[i] = tf;
                i++;
            } else {
                System.out.println(" - Informe uma temperatura maior do que 15º e menor do que 40º - ");
            }
        } while (i < temp.length);


    }
}
renamed

tente algo assim

import java.util.Scanner;
public class Ex3 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		Scanner input = new Scanner(System.in);
		
		float temp[] = new float[121];
		int i = 0;
		
		for ( i = 0; i < temp.length; i++){
          		boolean voltou = false;
			do{
                                 if (voltou) { 
                 			System.out.println(" - Informe uma temperatura maior do que 15º e menor do que 40º - ");
                 		 }
				System.out.println(" - Informe á temperatura do " + (i+1) + "º dia:");
				temp[i] = input.nextFloat();
                                voltou = true;
			}while( temp[i] <= 15 || temp[i] >= 40);

			
		}
	}
}

desculpe a formatação mas estou sem IDE aqui.

manolo

[b]Legal pessoal.
Deu certinho, tava penando pra resolve isso!

Muito obrigado. :smiley:

Abraços.[/b]

Criado 26 de abril de 2010
Ultima resposta 26 de abr. de 2010
Respostas 3
Participantes 3