我不知道如何循环这个我编码的简单程序,我真的需要帮助。
这是我的第一堂课:
public class project{
public static void main(String[] args){
dank dankObject = new dank();
dankObject.design();
dankObject.catchError();
}
}
这是我的第二堂课:
import java.util.Scanner;
public class dank{
public void design(){
System.out.println("---------------------------------");
System.out.println("| Main Checmicals in Substances |");
System.out.println("---------------------------------");
System.out.println("| LSD | SHROOMS | WEED |");
System.out.println("------------------------");
System.out.print("\nWhich substance would you like to learn about?\nInput: ");
}
public void catchError(){
Scanner input = new Scanner(System.in);
String choice = input.nextLine();
try{
if(choice.equalsIgnoreCase("LSD"))
{
System.out.println("\nMain Chemical: Lysergic Acid Diethylamide");
System.out.println("Fatal: NO");
}
else if(choice.equalsIgnoreCase("SHROOMS"))
{
System.out.println("\nMain Chemical: Psilocybin");
System.out.println("Fatal: NO");
}
else if(choice.equalsIgnoreCase("WEED"))
{
System.out.println("\nMain Chemical: THC");
System.out.println("Fatal: HELL NO");
}
else
{
System.out.println("\nInvalid Input!");
}
}
catch(Exception e)
{
System.out.println("\nInvalid Input!");
}
}
}
基本上我只是希望程序在用户输入无效输入时重新启动。我是否使用while循环执行此操作?我刚刚开始学习java。
答案 0 :(得分:0)
我假设你想在输入无效时循环。
在这种情况下,请将catchError
方法更改为返回boolean
而不是void
,并返回输入是否有效,如下:
public boolean catchError(){
Scanner input = new Scanner(System.in);
String choice = input.nextLine();
try{
if(choice.equalsIgnoreCase("LSD"))
{
System.out.println("\nMain Chemical: Lysergic Acid Diethylamide");
System.out.println("Fatal: NO");
}
else if(choice.equalsIgnoreCase("SHROOMS"))
{
System.out.println("\nMain Chemical: Psilocybin");
System.out.println("Fatal: NO");
}
else if(choice.equalsIgnoreCase("WEED"))
{
System.out.println("\nMain Chemical: THC");
System.out.println("Fatal: HELL NO");
}
else
{
System.out.println("\nInvalid Input!");
return false;
}
}
catch(Exception e)
{
System.out.println("\nInvalid Input!");
return false;
}
return true;
}
然后在返回值为false时循环:
boolean flag = true;
while (flag) {
dankObject.design();
flag = dankObject.catchError();
}
答案 1 :(得分:0)
移动两行:
Scanner input = new Scanner(System.in);
String choice = input.nextLine();
进入design()方法的最后。然后调用catchError(choice)
方法并将选择传递给它。将行design()
放在捕获体的末尾。最后,从你的main()中取出catchError()
方法。
这只是一个建议,如果你愿意,你可以做任何看起来像这样的事情。我也没有使用布尔值,所以如果你想这样做,你应该采取其他一些建议。
import java.util.Scanner;
public class dank{
public void design(){
System.out.println("---------------------------------");
System.out.println("| Main Checmicals in Substances |");
System.out.println("---------------------------------");
System.out.println("| LSD | SHROOMS | WEED |");
System.out.println("------------------------");
System.out.print("\nWhich substance would you like to learn about?\nInput: ");
Scanner input = new Scanner(System.in);
String choice = input.nextLine();
catchError(choice);
}
public void catchError(String choice){
try{
if(choice.equalsIgnoreCase("LSD"))
{
System.out.println("\nMain Chemical: Lysergic Acid Diethylamide");
System.out.println("Fatal: NO");
}
else if(choice.equalsIgnoreCase("SHROOMS"))
{
System.out.println("\nMain Chemical: Psilocybin");
System.out.println("Fatal: NO");
}
else if(choice.equalsIgnoreCase("WEED"))
{
System.out.println("\nMain Chemical: THC");
System.out.println("Fatal: HELL NO");
}
else
{
System.out.println("\nInvalid Input!");
design();
}
}
catch(Exception e)
{
System.out.println("\nInvalid Input!");
design();
}
}
}