我试图编写一个解决用户选择的方法(例如queryChoicesMethod)。用户可以选择4个选项,最后,所有4个选项必须按某种顺序位于String []中。假设您有选择a,b,c和d。您要求用户选择第一个选项,静态方法将返回第一个选项作为字符串。然后,答案将被放入main方法中[0]的数组中。当我再次调用queryChoicesMethod时,这次它应该说“请选择第二个选择......”,它将列出用户尚未选择的其他选项(例如,假设用户选择了“a”第一次,在第二次通话时,它应该打印“请选择选项b,c或d”之类的内容。答案将进入[1]的String []。在第三次通话期间,它应该要求用户选择剩下的两个选项中的任何一个(例如,如果用户第二次选择“b”,方法应该打印“请在第三次通话期间选择选项c或d”)。答案将进入[2]的字符串[]。最后剩下的选项将被放入数组而不再调用该方法,因为你不必要求用户输入最后一个选项(它已经决定最后一个选项在这个阶段进入数组[3]因为它是唯一的选择。)
我试图尽我所能,但都失败了。这是我无法弄清楚的作业
我必须使用的方法如下:
public static String queryChoices(String [] choices){}
感谢您的帮助
答案 0 :(得分:0)
获取静态变量并在方法中递增。使用first,second等单词映射变量值,以便在print语句中使用。 使用布尔数组作为您的选择,以帮助您了解它是否被采用。
import java.util.Scanner;
public class HelloWorld{
public static int i=0;
public static String num[]={"first","second","third","fourth"};
public static boolean taken[]={false,false,false,false};
static String[] choicelist={"","","",""};
public static String queryChoices(String[] choices){
HelloWorld h=new HelloWorld();
int l;
String ch;
Scanner s=new Scanner(System.in);
if(i<3){
System.out.println("enter your "+num[i]+" choice:\n The choices are");
for(int j=0;j<4;j++){
if(!taken[j])
System.out.println(j+". "+choices[j]);
}
int n=s.nextInt();
taken[n]=true;
h.choicelist[i]=choices[n];
ch=choices[n];
i++;
}else{
for(l=0;l<4;l++){
if(!taken[l])
break;
}
h.choicelist[3]=choices[l];
ch=choices[l];
}
return ch;
}
public static void main(String []args){
String[] choices={"a","b","c","d"};
String choice=queryChoices(choices);
System.out.println("your choice is: "+ choice);
System.out.println("your choice is: "+ choicelist[0]);
}
}