Новичок в программировании на java, нуждается в помощи по короткому фрагменту кода.
Я пытаюсь создать небольшой фрагмент кода, где он опрашивает вас, спрашивая ваше имя и возраст, а затем спрашивает, является ли это правильной информацией, используя концепцию "да/нет". У меня просто есть небольшое количество ошибок, которые я хотел бы спросить, я включил их в качестве комментариев в кусок кода. Я исследовал и пробовал различные способы их устранения, но до сих пор не нашел решения.
Что я уже пробовал:
import java.util.*; // I have created a simple Interviewer where it asks for name and age and ask if it is correct with a yes/no function. // I have compiled and ran this in Eclipse IDE, i have not encountered any critical errors but i have with yellow warnings. // I'm struggling with using the Scanner utility. // Apologises with structure, new to this. public class scanner { public static void main(String[] args) { Scanner userInput = new Scanner(System.in); // Yellow warning, is this right? Says 'convert local variable to field'* String version = "v1"; String wlcmsg; wlcmsg = "Welcome to Interviwer " + version + "."; System.out.print(wlcmsg); // Welcome message. System.out.println(" Please press 'enter' to continue..."); try { System.in.read(); } catch (Exception e) { //Works fine, Press the 'enter' key and takes me to next step. } for(int clear = 0; clear <= 50; clear++) { System.out.println(" "); // Prints 50 Lines of spaces, Using this as clearing screen but not sure if this is recommended. Any easier way or other code to do the same concept? ** } System.out.println("\n"); String blank = userInput.nextLine(); // I AM NOT SURE I NEED THIS? When i remove line 27 & 28, userInput does not work for line 29/30. System.out.println(blank + "Please enter your name: "); String name = userInput.nextLine(); for(int clear = 0; clear <= 50; clear++) { System.out.println(" ") ; //** } System.out.print("Hello " + name + ", I am your personal interviewer " + version + "\n" + "So, How old are you?"); int age = userInput.nextInt(); for(int clear = 0; clear <= 50; clear++) { System.out.println(" ") ; //** } System.out.println("So your name is " + name + " and you are " + age + " years old." + "\n" + "Is this correct?"); Scanner options = new Scanner(System.in); //* if(options.next().equalsIgnoreCase("y")||options.next().equalsIgnoreCase("options")) { // The yes option seems to work but no and the invalid characters does not seem to print out. Have i went wrong here? System.out.println("This will be fun"); } else if(options.next().equalsIgnoreCase("n")||options.next().equalsIgnoreCase("no")) { System.out.println("Maybe next time"); } else { System.out.println("Invalid character"); } } }
Maciej Los
А какой у тебя вопрос?
Richard Deeming
Предположение для последнего: options.next()
читает и потребляет следующий символ из входных данных. Если пользователь вводит "n"
, первый звонок вернется "n"
, и последующие вызовы будут ждать, пока пользователь наберет что-то еще.
Вам нужно позвонить options.next()
однажды; сохраните возвращаемое значение в переменной; а затем проверьте эту переменную на возможные ответы.
Member Hemal
Вот ваше решение .....
импорт java.util.*;
сканер публичного класса
{
публичный статический пустота главный(строка[] аргументы)
{
Иначе, если один операнд сканер = новый сканер(система.в);
Строку version = "В1";
Строка wlcmsg;
wlcmsg = "Добро пожаловать в Interviwer" + версия + ".";
System.out.print(wlcmsg);
System.out.println(" Пожалуйста, нажмите "enter", чтобы продолжить...");
пробовать
{
Системы.в.читать();
}
catch (исключение e)
{
}
for(int clear = 0; clear <= 50; clear++)
{
Системы.из.код println(" ");
}
Системы.из.код println("\п");
Строку пустой = иначе, если один операнд.строки();
System.out.println(пробел + "пожалуйста, введите свое имя: ");
Имя string = иначе, если один операнд.строки();
for(int clear = 0; clear <= 50; clear++)
{
Системы.из.код println(" ") ;
}
System.out.print("Здравствуйте" + имя + ", я ваш личный интервьюер " + версия + "\n" + "Итак, сколько вам лет?");
инт возраст = иначе, если один операнд.nextInt();
for(int clear = 0; clear <= 50; clear++)
{
Системы.из.код println(" ") ;
}
System.out.println("Итак, ваше имя" + name+", а вам "+ age + " лет." + "\n" + "это правильно?");
Параметры сканера = новый сканер(System.in);
Строка ans = options.next();
если(Анс.equalsIgnoreCase("г")||Анс.equalsIgnoreCase("варианты"))
{
System.out.println("это будет весело");
}
остальное, если(Анс.equalsIgnoreCase("Н")||Анс.equalsIgnoreCase("нет"))
{
System.out.println("может быть, в следующий раз");
}
еще
{
System.out.println("недопустимый символ");
}
}
}