#java
#java
Вопрос:
Недавно я выполняю код, одна из конструкций которого заключается в том, что если я введу специальное значение, программа перейдет к шагу 5 (пропусти несколько строк) и вернусь к шагу 1.
public static void doall(String[] args) throws FileNotFoundException {
Scanner input = new Scanner(System.in);
System.out.println("Enter VAL. -1 to end:");
int val, a, b, c, count = 0;
val = input.nextInt();
PrintWriter output=new PrintWriter("Sum.txt");
while (val != -1) {
System.out.println("Enter a,b,c:");
a = input.nextInt();
b = input.nextInt();
c = input.nextInt();
int max, facto, even;
max = findSum(a, b, c, output);
output.println("The three original integers are " a " " b " " c " n"
max " is the sum");
even = howmanyeven(max);
output.println("there is/are " even " even number(s)n");
while (a == 99) {
}
}
}
что я должен поместить между этим while (a == 99), поэтому, если я введу 99, он пропустит метод findsum и метод evennumber и вернется к началу, которое требует от меня ввода a, b, c. Все ответы приветствуются.
Комментарии:
1. Мы не можем определить логику для вас, мы не можем знать, что вы хотите, чтобы программа делала.
2. я отредактировал сейчас. извините за путаницу.
Ответ №1:
Сначала вам нужно инициализировать ваши переменные integers равными 0, поскольку они находятся в локальной области видимости и не будут инициализированы в 0 по умолчанию. Я вижу, что вы, вероятно, пытались сделать это в этой строке:
int val, a, b, c, count = 0;
Однако в этом случае значение 0 примет только count
, вы не можете инициализировать свои переменные, объявляя их подобным образом.
Что возможно, так это :
int val, a, b, c, count;
val = a = b = c = 0;
Затем вы можете сделать что-то вроде :
do {
System.out.println("Enter a,b,c:");
a = input.nextInt();
b = input.nextInt();
c = input.nextInt();
} while(a == 99);
<rest of code here>
Надеюсь, это поможет.
Отредактировано: Убедитесь также, что вашей переменной присвоено другое значение val
в противном случае ваш цикл будет продолжаться вечно.
Комментарии:
1. Я пытаюсь добавить что-то через while (a == 99), что, когда я введу 99 в качестве a, программа будет знать, что это 99 — специальное значение, и она остановит выполнение и вернется к while (val!= -1) { System.out.println(«Введите a, b, c:») blablablabla .но все равно спасибо.
2. Затем вы можете выполнить условие, подобное этому:
if (a==99) continue;
которое вернет вас к условию while.
Ответ №2:
Это может быть проблемой при использовании nextint () в scanner. Попробуйте использовать nexline() и преобразовать его в int. Итак, если вы хотите, чтобы все в одной строке с ‘,’ Используйте разделение строки. Если вы можете ввести число в разных строках, например
System.out.Print("enter a: ");
Int a = Int.Parse(input.nextLine());
System.out.Print("enter b: ");
Int b = Int.Parse(input.nextLine());
System.out.Print("enter c: ");
Int c = Int.Parse(input.nextLine());