[RESOLVIDO]duvida de iniciante x..D

Ola pessoal! sou novo em tudo aki, java e guj! to em uma duvida de muito iniciante referente ao codigo abaixo
quanto ao if else, o fato é que quando eu digito o S aparece a mensagem nao pode entrar, mas ai se eu digitar qualquer
outra letra ai tambem aparece… duvida boba mesmo. alguem pode corrigir pra mim ai?

[code]public class BooleanScanner {

public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);
	boolean s  = true;   
	System.out.println("s para sim e n para não");
	s = entrada.hasNext(); 
	
	if (!s){
		System.out.println(" pode entar");
		
	}else 
		System.out.println("non pode entar");
	}}

[/code]

Caro joesmith,

veja bem, o que você esta tentando fazer não faz sentido. Primeiro que a variável s devia ser do tipo String, e não Boolean.

String s;

Definindo-a como String, teriamos que alterar a linha de leitura:

s = entrada.hasNext();

para

s = entrada.nextLine();

Em relação ao teste lógico, o seu if está completamente equivocado. O correto seria:

if(s.equals("s")){ System.out.println("Pode entrar!\n");

e se você quisesse validar o n, seria mesma coisa:

if(s.equals("n")){ System.out.println("Nao pode entrar!\n");

E poderia até mesmo fazer um tratamento de erros:

else { System.out.println("Opcao invalida!\n"); }

Se s é true, ele entra, daí como você colocou o !, seria não s, então se s é true, ele é false e sai o non pode entrar.

Ou seja, onde for true, se você colocar a ! antes, ele inverte. É simples.

==================================================

Editando, agora eu saquei:

O esquema é, você não muda o valor de s pra true ou false, sendo que 0 é false e o resto é true.

:shock: Deu certo! eu fui na opção do juniorlinux, ficou perfeito! obrigado pela ajuda e pelo interesse.

Veja como ficou legal!

import java.util.Scanner;

public class BooleanScanner {

	public static void main(String[] args) {
	    Scanner entrada = new Scanner(System.in);
		String s;
		String n;  
		System.out.println("s para sim e n para não");
		s = entrada.nextLine(); n = entrada.nextLine();
	 	 
		if (s.equals("s")){ 
			System.out.println(" pode entar");
		
		}else
			System.out.println("não pode entrar");
	}

OBRIGADO!