Member 13700028 Ответов: 0

Новичок в программировании на 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("недопустимый символ");
}
}
}

0 Ответов