Dúvidas com as classes BufferedReader, Scanner e JOptionPane - quero entender

Olá colegas!!!

tentei esse programa, mas acontece que ele me apresenta um erro, como ainda estou engatinhando em Java, preciso de vcs, segue abaixo:
import java.io.*;

public class Aluno {
/**
* ####### Mostra o resultado da nota de um aluno #######
*/
public static void main(String[] args) {
// TODO code application logic here
BufferedReader dataln = new BufferedReader(new InputStreamReader(System.in));
String nota ="";
System.out.println(“Por favor, entre com a nota do aluno”);
if(nota>=7) {//se x é igual ou maior que 7 então:
System.out.println(“Aprovado”);
}else if(nota<=4){//se x é menor ou igual a 4 então:
System.out.println(“Reprovado”);
}else
//se nenhuma das duas opções acima:
System.out.println(“Recuperação”);
try{
nota = dataln.readLine();
}catch (IOException e){
System.out.println(“Error!”);
}
}
}

Verifiquem pra mim, e me ajudem.

Segue outro:

import javax.swing.JOptionPane;

public class Aluno3{
public static void main(String[] args){
    // TODO code application logic here
 String nota:"";
 nota = JOptionPane.showInputDialog("Por favor, entre com a nota do aluno");
if(nota>=7) {//se x é igual ou maior que 7 então:
        String msg = "Aprovado";
JOptionPane.showMessageDialog(null, msg);
}else if(nota<=4){//se x é menor ou igual a 4 então:
        String msg = "Reprovado";
JOptionPane.showMessageDialog(null, msg); 
}else //se nenhuma das duas opções acima:
        String msg = "Recuperação";
JOptionPane.showMessageDialog(null, msg);
}

}

Mais ou outro:

import java.util.Scanner;

public class aluno2{

public static void main(String[] args){
Scanner sc = new Scanner(System.in)
System.ou.println(“Entre com a nota do aluno”);
String nota="";
if(nota>=7){
System.out.println(“Aprovado”);
}else if (nota<=4){
System.out.println(“Reprovado”);
}else
return (“Recuperação”);
}
}

Aguardo orientações.

Cara, pegue uma apostila de Java Básico.
Quando for colocar código, use as tags code.

Eu não li o primeiro, mas no segundo você tente comparar um objeto String com um inteiro. Além disso, a nota não é entrada.

Vou seguir seu conselho colega André. Tô perdido todo

Olá, Joseildo.

Bem, ao ver seu código, notei alguns problemas com ele. Vi somente o que você utiliza a classe JOptionPane.
Bem, vamos lá, seguinte:

A classe JOptionPane somente lê Strings, como o Andre Brito disse. Até aí tudo bem, mas você, no condicional if tenta comparar essa String lida com o JOptionpane com um número inteiro ou float, isso dará erro de compilação mesmo.
Você deve converter esse valor lido com o JOptionPane para inteiro, ou float, já que se trata de nota, que pode ter valores em ponto flutuante.

No último else você está tentando colocar duas instruções dentro dele sem abrir as chaves. Veja que se o valor da nota não for maior ou igual a 7 e nem menor do que 3, você tenta atribuir um valor à variável msg e imprimir uma mensagem na tela com o JOptionPane. Ou seja, duas instruções que deveriam estar dentro do último else. Quando temos mais de uma insttrução dentro de uma estruutura condicional ou de um looping de repetição, tipo for, por exemplo, devemos abrir chaves antes dessas instruções.
Nesse ponto há dois erros, um por que você não abriu as chaves, então o compilador entende que haverá somente uma instrução dentro desse else, com isso o compilador está dando um erro que eu não saberia te explicar direito, ele diz que String não pode ser resolvido e que msg não pode ser resolvido também. Alguém poderia explicar isso para nós dois, por favor ?
Meu entendimento é que a variável msg é local e não definida anteriormente, mas gostaria de saber o por que desse erro.

Agora, já que se trata de nota, defina ma variável float para recebê-la, pois as notas podem estar em ponto flutuante.
Estude o uso das classes Scanner e BafferedReader, pois pelo que vi os erros em sues códigos são somente os que comentei acima, portanto, tanto usando Scanner como BufferedReader os erros serão os mesmos com a diferença de que esses métodos aceitam ler valores inteiros e de ponto flutuante. O negócio é estudar.

Outra coisa, quando for postar dúvidas e colar seu código, use as tags code, assim fica bem mais fácil ler seu código.

Veja o código que fiz baseado no seu logo abaixo. Está com comentários nas linhas que podem dar erros.
Se precisar de mais ajuda, poste aí.


import javax.swing.JOptionPane; 

public class Aluno3
{
	public static void main(String[] args)
	{ 
		String notas; // Define atributo para ser lido no JOPtionPane
		float nota; // Nota é definida como float
		String msg; // Define attributo msg do tipo String
		
		notas =JOptionPane.showInputDialog("Por favor, entre com a nota do aluno"); // Lê atributo notas
		nota = Float.parseFloat(notas); // converte notas para float e atribui seu valor ao atributo nota
		
		// Agora sim, você pode fazer as comparações dentro dos ifs. Veja:
		if(nota>=7)
		{//se x é igual ou maior que 7 então: 
		   msg = "Aprovado"; 
		   JOptionPane.showMessageDialog(null, msg); 
		}
		else if(nota<=4)
		{//se x é menor ou igual a 4 então: 
		   msg = "Reprovado"; 
		   JOptionPane.showMessageDialog(null, msg); 
		}
		else
		{//se nenhuma das duas opções acima: 
		    msg = "Recuperação";
		    JOptionPane.showMessageDialog(null, msg); 
		}
	} 
}

Obrigado pelas instruções colega Andre, me ajudou muito.