Я пытаюсь прочитать текстовый файл на Java, в основном набор вопросов.С четырьмя вариантами и одним ответом.Структура выглядит следующим образом:
вопрос
опция a
опция b
опция c
опция d
ответ
У меня нет проблем с его чтением таким образом:
public class rar{
public static String[] q=new String[50];
public static String[] a=new String[50];
public static String[] b=new String[50];
public static String[] c=new String[50];
public static String[] d=new String[50];
public static char[] ans=new char[50];
public static Scanner sr= new Scanner(System.in);
public static void main(String args[]){
int score=0;
try {
FileReader fr;
fr = new FileReader (new File("F:\\questions.txt"));
BufferedReader br = new BufferedReader (fr);
int ar=0;
for(ar=0;ar<2;ar++){
q[ar]=br.readLine();
a[ar]=br.readLine();
b[ar]=br.readLine();
c[ar]=br.readLine();
d[ar]=br.readLine();
String tempo=br.readLine();
ans[ar]=tempo.charAt(0);
System.out.println(q[ar]);
System.out.println(a[ar]);
System.out.println(b[ar]);
System.out.println(c[ar]);
System.out.println(d[ar]);
System.out.println("Answer: ");
String strans=sr.nextLine();
char y=strans.charAt(0);
if(y==ans[ar]){
System.out.println("check!");
score++;
System.out.println("Score:" + score);
}else{
System.out.println("Wrong!");
}
}
br.close();
} catch (Exception e) { e.printStackTrace();}
}
}
Код выше предсказуем.Цикл for просто увеличивается.И он отображает вопросы на основе порядка.
Что я хочу сделать, это иметь возможность рандомизировать через текстовый файл, но при этом сохраняя ту же структуру.(q, a, b, c, d, ans).Но когда я пытаюсь сделать это:
int ran= random(1,25);
System.out.println(q[ran]);
System.out.println(a[ran]);
System.out.println(b[ran]);
System.out.println(c[ran]);
System.out.println(d[ran]);
System.out.println("Answer: ");
String strans=sr.nextLine();
char y=strans.charAt(0);
if(y==ans[ran]){
System.out.println("check!");
score++;
System.out.println("Score:" + score);
}else{
System.out.println("Wrong!");
}
И этот метод я использую для рандомизации:
public static int random(int min, int max){
int xx;
xx= (int) ( Math.random() * (max-min + 1))+ min;
return xx;
}
Есть вероятность, что я получу ноль.Что вы можете порекомендовать мне, чтобы я не получал нулевое значение при попытке рандомизировать вопросы?
Можете ли вы увидеть что-то еще, что не так с моей программой?