需要帮助编写一个动态方法,当每次使用不同的参数调用方法时,该方法会为用户提供不同的提示

时间:2017-03-14 05:12:57

标签: java arrays string dynamic

我试图编写一个解决用户选择的方法(例如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){}

感谢您的帮助

1 个答案:

答案 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]);

 }
}