在这个问题中,有一个单独的问题,问题,选项,答案。用户看到了问题及其四个选项,并将输入答案。答案数组将与键阵列进行比较,哪个选项为true Display正确答案
可以在单行上输入它们,例如,34 7 13 100 81 3 9 10 321 12
可能是10个问题测验的关键
在此代码中,我只有2个问题和2个键和8个选项4,每个问题
package p16;
import java.util.ArrayList;
import java.util.Scanner;
public class P16 {
public static void main(String[] args) {
// TODO code application logic here
ArrayList<String> items = new ArrayList<String>();
int C=0,w=0;
items.add("What is your id");
items.add(1, "what is your uni");
ArrayList<String> key = new ArrayList<String>();
key.add("2");
key.add("2");
ArrayList<String> Options = new ArrayList<String>();
Options.add("1");
Options.add("2");
Options.add("3");
Options.add("4");
Options.add("1");
Options.add("2");
Options.add("3");
Options.add("4");
ArrayList<String> Answer = new ArrayList<String>();
for(int i=0;i<2;i++)
{
System.out.println("items(i)");
for(int k=0;k<12;k+=4)
{
Options.get(k);
Options.get(k+1);
Options.get(k+2);
Options.get(k+3);
}
System.out.print("Enter :" );
Scanner S=new Scanner(System.in);
int a = S.nextInt();
}
for(int j = 0;j<2;j++)
{
if(Answer.get(j).equals(key.get(j)))
{C++;
}
else
{w++;
}}}
输出
run:
items(i)
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 8, Size: 8
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at p16.P16.main(P16.java:61)
Java Result: 1
建立成功(总时间:13秒)
在我们到达代码之前,这里有一个过度骑行的问题:您正在尝试重复使用多项选择算法,要求选项编号,但是您要问的问题是开放的 - 最终的文字问题。例如"你叫什么名字?"。您不能将多选择方法用于此类问题。因此,首先要非常清楚地确定您要问的问题以及如何使用答案。
此代码有很多问题。看来您尝试采用类似的程序并更改它,但是您尚未理解原始程序。我的强烈建议:重新开始。将问题分解为单独的步骤,在尝试整体运行程序之前测试每个步骤。
错误:
错误1:您从用户获得答案
int a = S.nextInt();
,但切勿使用该变量。您需要用"一个"值做点事。请参阅下一个错误。
错误2:您有一个称为答案的数组列表,但从未在其中放置任何值。我怀疑您的意图是收集一组答案并将其放在列表中,但您还没有这样做。
修改您的代码以将A的值放入答案列表中。
错误3:您有此代码
for(int k=0;k<12;k+=4)
{
Options.get(k);
Options.get(k+1);
Options.get(k+2);
Options.get(k+3);
}
它获得了价值,但对它们没有任何作用,因此没有目的。您的程序当前正在失败。您已将8个值放入选项数组(索引0到7)中,但是允许K高于7。
但是:正如我所说,您没有理由拥有此代码,因为它当前所示。你为什么要打电话
Options.get(k)
您不使用结果。
错误4:您不打印结果。
错误5:您从字面上打印"项目(i)",我的猜测是您打算
System.out.println("items(" + i + ")" + items(i));
推荐动作:
将问题分为两个步骤:
从用户中检索答案,将它们存储在答案列表中。通过打印列表的内容来验证这一点。
将答案列表与预期答案进行比较(我想这是关键的目的)。打印结果。