В настоящее время я работаю над некоторыми упражнениями, данными мне моим учителем. Это для праздников, поэтому я не смогу просить о помощи там.Как предотвратить повторную печать строк во время цикла?
У меня есть эта часть кода, которая создает таблицу умножения из целого числа, определенного пользователем, в пределах от минимума и максимума, также определенных пользователем.
Прежде чем устанавливать какие-либо из моих переменных на следующее целое число в моем сканере, я делаю чек, чтобы увидеть, действительно ли у Сканера есть целое число. Это отлично работает, но я не хочу, чтобы он печатал сообщение об ошибке в миллиард раз.
Любые советы/приемы или другие специальные способы обойти это?
public class MultiplicationTable
{
private int intervalMin;
private int intervalMax;
private int multiplier;
private int result;
private Scanner sc;
public MultiplicationTable()
{
multiplier = 0;
intervalMin = 0;
sc = new Scanner(System.in);
while (multiplier == 0)
{
System.out.println("Please enter the integer you wish to show the table for");
if (sc.hasNextInt())
{
multiplier = sc.nextInt();
}
else
{
System.out.println("Input is not an integer\n");
}
}
while (intervalMin == 0)
{
System.out.println("\nPlease enter the integer defining the start of the table");
if (sc.hasNextInt())
{
intervalMin = sc.nextInt();
}
else
{
System.out.println("Input is 0 or not an integer\n");
}
}
while (intervalMax == 0)
{
System.out.println("\nPlease enter the integer defining the end of the table");
if (sc.hasNextInt())
{
int i = sc.nextInt();
if (i > intervalMin)
{
intervalMax = i;
}
else
{
System.out.println("\nEnd integer must be greater than start integer");
}
}
else
{
System.out.println("Input is 0 or not an integer");
}
}
System.out.println("\nTable for integer " + multiplier + " from " + intervalMin + " to " + intervalMax + "\n");
for (int i = intervalMin; i <= intervalMax; i++)
{
result = i * multiplier;
System.out.println(i + " * " + multiplier + " = " + result);
}
}
}
sc.nextLine будет использовать последний пользовательский ввод и снова вызовет sc.hasNextInt, он будет ожидать ввода другого пользователя. – Bon
Это точно работает. Большое спасибо! Однако я не могу сказать, что полностью понимаю это. – stormman67