verificaçao de entrada de dados

Ola pessoal
estou com o seguinte problema.
estou fazendo um programa pra calcula a minha media :slight_smile:
e queria que fosse feita alguma validaçao quando o usuario entrasse com os dados…
mas nao estou conseguindo
dêm uma olhada no codigo abaixo

[code]import java.io.File;
import java.util.Scanner;

public class AlunoNota {
private String nome;
private double p1;
private double p2;
private double media = 0;
private final double p1Fator = 0.4;
private final double p2Fator = 0.9;
private boolean ErroNota = false;
File file;

public AlunoNota () {
	entraNota();
		
}
//void entraNota()
private void entraNota(){
	Scanner entrada = new Scanner(System.in);
	nome = new String();
	System.out.println("Entre com o nome do aluno: " );
	//seta o nome
	seNome( nome = entrada.next() );
	boolean ErroNota = false;
	
	
	do{
		System.out.println("Entre com a nota da P1: ");
		setP1( new String(entrada.next()));
		
		System.out.println("Entre com a nota da P2: ");
		setP2( new String(entrada.next()));	
	}while(ErroNota);
		
}
private void setP1(String string) {
	String nota1 = string;
	p1 = Double.parseDouble(string);
	if(p1 < 0 || p1 > 10){
		ErroNota = true;
	}
	
}
private void setP2(String string) {
	String nota1 = string;
	p2 = Double.parseDouble(string);
	if(p2 < 0 || p1 > 10){
		ErroNota = true;
	}
	
}
private void seNome(String nm) {
	this.nome = nm;
	
}

}
[/code]

Colega,

Vc quer verificar se o dado digitado pele usuario na hora de digitar a nota é um valor numerico ou se é uma plavra por exemplo? Seria isso.

Tente exclarecer melhor onde vc quer que seja feita a validação

att

Amigo, ve se o código abaixo te ajuda!!! fiz algumas modificações, como por exemplo: mudei o private para public nos metodos, para podermos ter o esquema de herança e encapiculamento…

import java.io.File;   
import java.util.Scanner;   
  
  
public class AlunoNota {   
    private String nome;   
    private double p1;   
    private double p2;   
    private double media = 0;   
    private  final double p1Fator = 0.4;   
    private  final double p2Fator = 0.9;   
    private boolean ErroNota = false;   
    File file;   
       
    public AlunoNota () {   
        entraNota();   
               
    }   
    //void entraNota()   
    public void entraNota(){   
        Scanner entrada = new Scanner(System.in);   
        nome = new String();   
        System.out.println("Entre com o nome do aluno: " );   
        //seta o nome   
        seNome( nome = entrada.next() );   
        boolean ErroNota = false;   
           
           
        do{ 
        	//Nota P1
            System.out.println("Entre com a nota da P1: ");   
            setP1( new String(entrada.next()));   
            
            //Nota P2
            System.out.println("Entre com a nota da P2: ");   
            setP2( new String(entrada.next()));   
        }while(ErroNota);   
        imprimir();
    }   
    public void setP1(String string){   
        String nota1 = string;
        /*
         *	instancie novamente o scanner para pode, pedi para o usuario entrar com os dados novamente.
         *  lembrando que: scanner será uma variavel de instancia local ou seja, só vai durar enquanto esse metodo
         *  estiver sendo usado. 
         */ 
        Scanner entrada = new Scanner(System.in);
        
        //primeiro iremos converter o valor para um double...
        p1 = Double.parseDouble(string);
        
        //agora vamos validar, o valor...
        	if(p1 < 0 || p1 > 10){   
        		//se for menor que zero ou for maior que 10...
                ErroNota = false;//sete com false...
            	System.out.println("Favor digitar a Nota Novamente...");//emite mensagem de erro...
            	System.out.println("Entre com a nota da P1: ");   //solicite os dados novamente...
                setP1( new String(entrada.next()));   //faça uma recursiva para passar os dados novamente...
            }else
        	    ErroNota=true;//se tiver correto sete como true para mudar para o proximo campo.
    }   
    
    public void setP2(String string) {   
    	//Vamos fazer a mesma coisa aqui...
    	
        String nota1 = string;   
        Scanner entrada = new Scanner(System.in);
        p2 = Double.parseDouble(string);   
        
        if(p2 < 0 || p1 > 10){ 
        	
        	ErroNota = false;//
        	System.out.println("Favor digitar a Nota Novamente...");
        	System.out.println("Entre com a nota da P2: ");
            setP1( new String(entrada.next()));   
        }else   
        	ErroNota=true;
    }   
    
    public void seNome(String nm) {   
    	this.nome = nm;   
    }
	public String getNome() {
		return nome;
	}
	public double getP1() {
		return p1;
	}
	public double getP2() {
		return p2;
	}
    
    public void imprimir(){
    	System.out.println("Aluno:" +this.getNome()+"\n"+"P1:"+this.getP1()+"\n"+"P2:"+this.getP2());
    } 
} 

entendi colega,

vc quer que o programa entenda quando se digita uma String no lugar de p1 e p2? Se for isso é bem simples:

vc deve utilzar o try catch com o NumberFormatException para tratar isso.

se vc não sabe tratar exception eu sugiro que dê uma olhada aqui pelo forum que eu tem bastante material sobre isso. É que agora estou sem tempo pra ver isso pra vc.

att.