#java #methods #return
#java #методы #Возврат
Вопрос:
Мой основной метод — это меню переключения регистров, которое работает нормально. Если пользователь выбирает 2, он переходит к этому классу и возвращается нормально, но если пользователь выбирает 1, он выполняет этот метод, но затем останавливается и не возвращается. Что я упускаю из виду? Если я выполняю выход из системы, она завершает работу, но мне нужно, чтобы она вернулась в меню.
Конец метода, который останавливается:
for (int index = 0; index < items.length; index ) {
System.setOut(console);
System.out.printf("%-16s d d d s n", items[index], supplyOnHand[index], last24HourUsage[index], daysOnHand[index], status[index]);
System.setOut(o);
System.out.printf("%-16s d d d s n", items[index], supplyOnHand[index], last24HourUsage[index], daysOnHand[index], status[index]);
}
}
}
Главная:
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
boolean exit = false;
do {
System.out.println("Please enter your choice:");
System.out.println("1. Enter new data.");
System.out.println("2. Review latest data.");
System.out.println("3. Exit.");
Scanner sc1 = new Scanner(System.in);
int choice = sc1.nextInt();
switch (choice){
case 1:
Dashboard.main();
break;
case 2:
ReadFile.main();
break;
case 3:
exit = true;
break;
}
} while (!exit);
}
}
Редактирование, чтобы, надеюсь, сделать его более понятным. Я не разбираюсь в формулировках.
Если я выберу 2, он выполнится и вернется в меню:
Please enter your choice:
1. Enter new data.
2. Review latest data.
3. Exit.
2
Please enter your choice:
1. Enter new data.
2. Review latest data.
3. Exit.
Если я выберу 1, он не вернется, просто зависнет:
Please enter your choice:
1. Enter new data.
2. Review latest data.
3. Exit.
1
Welcome to the Rationed Medical Supply Dashboard.
After your entries of stock on hand and daily usage,
your days on hand and supply status will be displayed for each item.
The results will be displayed in the log below and
also in a running log in the file DashboardLog.txt
_______________________________________________________________________________________________________________________
How many items are we tracking today?
1
Enter name of item # 1:
1
How many of item # 1 do we have?:
1
What was the usage of item # 1 in the last 24 hours:
1
12/07/20 12:47:37
Current status of all items being tracked:
Item| Supply on hand| Last 24 Hr Usage| Days on hand| Status|
-------------------------------------------------------------------------------------
1 1 1 1 Critical
Комментарии:
1. Что вы подразумеваете под «возвращается нормально» и «не возвращается»? Есть ли у вас какие-либо исключения во время выполнения?
2. Отредактировано, чтобы попытаться сделать его более понятным.
Ответ №1:
Один из моих классов не возвращается в основной класс после его завершения. Как мне вернуть его?
Это не так, как работает Java.
Методы выполняются. Методы возвращаются. Классы — это просто пакеты свойств; некоторые поля, некоторые методы. Они не убегают. Они не возвращаются.
Вы возитесь с System.out, а затем спрашиваете о «остановке». Это плохой план, не связывайся с изложением.
Это вовсе не тянет время, по крайней мере, ничто в вашей пасте не говорит об этом. Однако вы создаете System.out
что-то другое, поэтому, скорее всего, ваш код не останавливается, а, например System.out.println("Please enter your choice:");
, отправляется на то, что вы не видите.
System.setOut
перемены System.out
повсюду.
Ответ №2:
Понял это. Мне просто нужно было закончить на:
System.setOut(console);
System.out.printf("%-16s d d d s n", items[index], supplyOnHand[index], last24HourUsage[index], daysOnHand[index], status[index]);
Вместо:
System.setOut(o);
System.out.printf("%-16s d d d s n", items[index], supplyOnHand[index], last24HourUsage[index], daysOnHand[index], status[index]);
Теперь отлично работает. Спасибо за всю помощь!