Vejam só, eu quero atribuir mais de um valor a uma variável, de modo que quando eu colocar uma condição IF, verifique-se se o valor inserido apartir do Scanner existe na variável. Mais claro que assim, não consigo deixar. Obrigado
Uma variável não pode ter mais de um valor em um determinado momento, por definição. Você pode ter um array com vários valores dentro dele, mas o array em si só tem um valor (a estrutura do array).
Um array ou uma coleção servem para você.
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Set<String> inputs = new HashSet<>();
String input;
// enquanto a entrada não for só um enter...
while ( !(input = sc.nextLine()).isEmpty() ) {
// se o meu conjunto de inputs já tiver esse valor entrado
if (inputs.contains(input)) {
System.out.println("Essa input já foi informada...");
} else { // se não, adiciona o novo valor no conjunto (ou faz qualquer coisa)
inputs.add(input);
}
}
}
}
Muito obrigado, Lucas. Acho que preciso aprender um pouco mais antes de me meter com condições. Na verdade consegui fazer o que eu queria, de outra maneira. Usei o IF e OU(||), mas em alguns forums falam que para o que eu quero fazer, só com o WHILE.
Veja só.
Scanner intro = new Scanner(System.in);
System.out.println("Esta em frente a um portao e logo em frente, em letras bem grandes esta escrito"
+ " \"Bem vindo a sua morte\". "
+ "\n Volta ou Entra");
num = intro.nextLine();
if ((num.equals("Entrar")) || (num.equals("entrar")) || (num.equals("E")) || (num.equals("e"))){
System.out.println("Boty: Divista-se");
}
else {
System.out.println("Boty: Não reconheço essa palavra");
//Depois deste erro, gostaria que ele voltasse para cima, pedindo a entrada
}
}
Mais uma ajudinha aí?
Para esse caso, não precisa de uma coleção mesmo. Achei que você queria comparar as inputs do usuário com elas mesmas, para ver se não havia repetição.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input;
boolean entrou;
while (true) {
input = sc.nextLine();
if (input.equalsIgnoreCase("entrar") || input.equalsIgnoreCase("e")) {
System.out.println("Bem vindo!");
entrou = true;
break;
}
else if (input.equalsIgnoreCase("voltar") || input.equalsIgnoreCase("v")) {
System.out.println("Adeus!");
entrou = false;
break;
} else {
System.out.println("Palavra não reconhecida.");
}
}
System.out.println("O usuário entrou? " + entrou);
}
Scanner intro = new Scanner(System.in);
System.out.println(“Esta em frente a um portao e logo em frente, em letras bem grandes esta escrito”
+ " “Bem vindo a sua morte”. "
+ “\n Volta ou Entra”);
do{
num = intro.nextLine();
if ((num.equals("Entrar")) || (num.equals("entrar")) || (num.equals("E")) || (num.equals("e"))){
System.out.println("Boty: Divista-se");
}
else {
System.out.println("Boty: Não reconheço essa palavra");
//Depois deste erro, gostaria que ele voltasse para cima, pedindo a entrada
}
}while(!(num.equals("Entrar")) && !(num.equals("entrar")) && !(num.equals("E")) && !(num.equals("e")));
tente isso