Como eu faço para aparecer uma mensagem de aviso dizendo q o valor esta incorreto? - RESOLVIDO

7 respostas
alisson027
package exe_java;
import java.util.Scanner;
public class exe4 {

	/** Escreva um aplicativo que localize o menor de vários inteiros. Assuma que o primeiro valor lido 
especifica o número de valores a serem inseridos pelo usuário.  */
	
	public static void main(String[] args) {
		
		
		Scanner y= new Scanner(System.in);
		
		System.out.print("n° de valores a serem inseridos:");
		
		int x= y.nextInt();
		int valor=0; 
			for(int counter=x;counter>0;--counter){
				Scanner insert=new Scanner(System.in);
				System.out.print("insira o "+ (x-counter+1)+"° valor: " );
				int valor2= insert.nextInt();
				if (valor>=valor2 ||counter==x){
					valor=valor2;
		}		
		}
		System.out.print("o menor valor inserido: "+valor);
	
		}
}
como eu faço para aparecer uma mensagem de aviso dizendo q o valor esta incorreto? exemplo:"ERRO: digite um n° inteiro" o exercicio nao pede mas gostaria de saber e se tiver algum jeito mais facil de fazer isso avisem(algum codigo diferente ou codigos q eu coloquei a maisq daria pra tirar)

7 Respostas

rmendes08

Não precisa, o método nextInt lança uma InputMismatchException caso o próximo token na entrada não corresponda a um inteiro.

pvrsouza

Pode fazer 03 opções:

  • Se for usar interface gráfica, use o simplório JOptionPane.showMessageDialog
  • No seu caso, pode usar um try…catch e crie uma exceção personalizada!
  • Ou então esperar pelo InputMismatchException mesmo!
alisson027
o try catch é o q eu tava procurando mas pesquesei como usa ele e eu olho o cod e nao sei ond ta o erro fico assim
package exe_java;
import java.util.Scanner;
public class exe4 {

	/** 
Escreva um aplicativo que localize o menor de vários inteiros. Assuma que o primeiro valor lido 
especifica o número de valores a serem inseridos pelo usuário.  */
	
	public static void main(String[] args) {
		
		try{
		Scanner y= new Scanner(System.in);
		
		System.out.print("n° de valores a serem inseridos:");
		
		int x= y.nextInt();
		int valor=0;
			for(int counter=x;counter>0;--counter){
				Scanner insert=new Scanner(System.in);
				System.out.print("insira o "+ (x-counter+1)+"° valor: " );
				int valor2= insert.nextInt();
				if (valor>=valor2 ||counter==x){
					valor=valor2;
		}		
		}
		System.out.print("o menor valor inserido: "+valor);
		return;
		}
		catch(exception e){  //o erro aparece nessa linha
			System.out.print("ERRO: digite um n° inteiro");
		}
		}
}
aparece isso Exception in thread "main" java.lang.Error: Unresolved compilation problem: exception cannot be resolved to a type

at exe_java.exe4.main(exe4.java:29)

:?: :?: :?:

pvrsouza

O erro está na sintaxe. Troque exception por Exception. Letra maiuscula.

Veja ai!

Se tiver problema na lógica ( que eu não testei sua lógica ) posta ai!

Abraços!

AnDrOiDe

VEJA NESSE SITE DEVE AJUDAR MLK!

http://java.sun.com/docs/books/tutorial/uiswing/components/dialog.html

pvrsouza

Outras observações:

import java.util.Scanner;

public class Exe4 { //nome de classe tem que iniciar com letra maiuscula
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in); //vc só percisa de um objeto Scanner não precisa de mais.
        try {
            System.out.print("n° de valores a serem inseridos:");
            int x = in.nextInt();
            int valor = 0;
            for (int counter = x; counter > 0; --counter) {
                System.out.print("insira o " + (x - counter + 1) + "° valor: ");
                int valor2 = in.nextInt();
                if (valor >= valor2 || counter == x) {
                    valor = valor2;
                }
            }
            System.out.print("o menor valor inserido: " + valor);
            //return; //esse return tambem não tem sentido nenhum!
        } catch (Exception e) {  //o erro aparecia nesta linha porque estava com erro na sintaxe
            System.out.print("ERRO: digite um n° inteiro");
        }
    }
}
alisson027

vixi fiquei teh constrangido agora :oops: (q erro bobo)
era isso mesmo a insignificante letrinha causou um problemão rsrsrsrs
vlw pela ajuda
agora deu certo

Criado 11 de abril de 2010
Ultima resposta 12 de abr. de 2010
Respostas 7
Participantes 4