我创建了一个程序来处理刑事案件并存储它,然后我添加了另一个交换机,以便我可以访问我希望在程序中添加的其他内容。但是当选择被执行时似乎有错误。开关不会识别我的选择,而是重复循环中的菜单。编译过程中没有错误。这里的编码...交换机中的奇怪错误
import java.util.ArrayList;
import java.util.Scanner;
public class CriminalCase {
private String batput;
public String getBatput(){return batput;}
public CriminalCase(String batput){
this.batput = batput;
}
private static class robin{
String Batman(){
Scanner s=new Scanner (System.in);
System.out.println();
System.out.println("Enter name.");
String a=s.nextLine();
System.out.println("Enter Date of birth.");
String b=s.nextLine();
System.out.println("Enter Sex.");
String c=s.nextLine();
System.out.println("Enter Crime Committed.");
String d=s.nextLine();
System.out.println("Enter Date of Crime Committed.");
String e=s.nextLine();
System.out.println("Enter Victim.");
String f=s.nextLine();
System.out.println();
String g=""+"\n"+""+"Name:- "+a +"\nDOB:- "+b +"\nSex:- "+c +"\nCrime Committed:- "+d +"\nDate of Crime Committed:- "+e +"\nVictim:- "+f;
System.out.println();
return g;
}
}
public static void main(String[] args) {
ArrayList<CriminalCase> cases = new ArrayList<>();
boolean quit = false;
Scanner s = new Scanner(System.in);
robin j=new robin();
boolean exit=false;
for(;!exit;){
System.out.println("For cases press 1.\nFor printing thank you, press 2.\nTo exit, press 3.");
int choice=s.nextInt();
switch (choice){
case 1:{
while (!quit) {
System.out.println();
System.out.println("To view current cases enter v\nto add a case enter a\nto quit enter q");
String input = s.nextLine();
switch(input){
case ("v"): {
System.out.println("");
System.out.println("The following cases exist:");
System.out.println("\nName:- Batman\nDOB:- Unknown\nSex:- Male\nCrime Committed:- Tresspassing a crime scene, Fleeing scene of crime, Carrying unlicensed vehicles and
weapons.\nDate of Crime Committed:- 18/9/2015\nVictim:- None.");
for (CriminalCase c : cases)
System.out.println(c.getBatput());
break;
}
case("a"):{
String batput=j.Batman();
cases.add(new CriminalCase(batput));
break;
}
case("q"):{
quit = true;
}
}
}
break;
}
case 2:System.out.println("Thank you.");
break;
case 3:exit=true;
}
}
}
}
*当您在Stack Overflow上发布信息时,请*花时间格式化您的代码 - 我不希望您的代码看起来像您的IDE(或其他)。缩进代码,删除大量额外的空白等等。还有更多代码比你真正需要证明问题 - 如果问题只在选择位上,你是否需要休息?请参阅http://stackoverflow.com/help/mcve –
一如既往:'Scanner.nextInt()'不_not_消耗必须在控制台上输入的换行符。所以你必须在's.nextInt()'之后运行一个额外的's.nextLine()'。由于代码太多,我无法查看代码中是否存在任何问题。 – Seelenvirtuose
谢谢!并且会在下次照顾格式! –