Erro no If

Estou criando um programa de perguntas e respostas, porém o meu IF não está funcionando, todas as perguntas que respondo retorna como verdadeira(mesmo estando errada), acredito que seja algo no meu if só que não estou conseguindo identificar.

Por favor me ajudem

package quizjava;

import java.util.*;


/**
 *
 * @author Edimilson
 */
public class Quizjava {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        System.out.print("Número de constituições que o Brasil já teve, incluindo a atual.\n");
	System.out.print("A) 5\n");
	System.out.print("B) 3\n");
	System.out.print("C) 7\n");
	System.out.print("D) 2\n");
        System.out.print("E) 1\n");
	System.out.print("-------------------------------------------------------------------------------\n");			
        System.out.print("Qual a resposta certa?\n");
        Scanner input3 = new Scanner(System.in);
	String validar2 = input3.nextLine();
        boolean c = true; //se mudo para "false" todas as resposta viram falsa.       
        /*{
		resp = Byte.parseByte(validar2);
	}//*/
        if (c){
            System.out.print("Esta correta ");
        }else {
            System.out.print("Esta errada ");
        }
    }
    
}

Bom ao meu ver o seu código está aplicando como resultado true e após o if está verificando se é true or false, basicamente você está falando que é verdadeiro ou falso sem ocorrer nem uma verificação então o programa vai dar sempre falso ou sempre verdadeiro, uma das possíveis soluções é fazer com que o if compare se a String informada bate com a resposta correta.

if ("A".equals(validar2) || "a".equals(validar2)){
            System.out.print("Errado");
        }else if ("B".equals(validar2) || "b".equals(validar2)) {
            System.out.print("Errado");
        }else if ("C".equals(validar2) || "c".equals(validar2)) {
            System.out.print("Correto");
        }else if ("D".equals(validar2) || "d".equals(validar2)) {
            System.out.print("Errado");
        }else if ("E".equals(validar2) || "e".equals(validar2)) {
            System.out.print("Errado");
        }

Isso está acontecendo porque quando você faz a atribuição

boolean c = true;

você não está dizendo que a resposta certa é a C, você está criando uma variavel booleana chamada c e atribuindo a ela o valor true.

a forma correta seria você criar uma variavel chamada “resposta” ou algo do genero, que seja uma string e tenha o resultado esperado dentro (no seu caso, “7”) e comprarar o valor de validar2 com o valor de resposta.