java - 是否可以在 main 方法之外使用 Scanner 并仍然调用它?
问题描述
所以我想要做的是使用我的扫描仪方法来保存用户在 for 循环中输入的输入,但是我如何调用他们放置的特定类型的输入呢?我的意思是,假设用户放置在输入 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 作为问题方法和答案方法的输入。在 main 方法或任何方法中,我如何调用 10 或 12 的输入。
package com.ez.ez;
import java.util.Scanner;
public class ReWrittingBetterCode{
public static void Questions(){
for (int i = 1; i <= 10; i++) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter a question "+i+"/10");
String firstQuestion = scanner.nextLine();
}
}
public static void Answer() {
for (int i = 1; i <= 10; i++) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter a answer "+i+"/10");
String answerAnswer = scanner.nextLine();
}
}
public static void main (String[] args) {
Questions();
Answer();
}
}
解决方案
您需要分配一个数组来保存问题。然后,当您提示答案时,您可以重复这些问题。为了与您的循环保持一致,您应该noq
为多个问题调用单个变量或其他东西,并在使用 for 循环时在任何地方使用它。
static int noq = 10;
static String[] questions = new String[noq];
static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
Questions();
Answer();
}
public static void Questions() {
for (int i = 1; i <= noq; i++) {
System.out.println("Enter a question " + i + "/" + noq);
String firstQuestion = scanner.nextLine();
questions[i - 1] = firstQuestion;
}
}
public static void Answer() {
for (int i = 1; i <= noq; i++) {
System.out.println(questions[i - 1]);
Scanner scanner = new Scanner(System.in);
System.out.println("Enter a answer " + i + "/" + noq);
String answerAnswer = scanner.nextLine();
}
}
您还应该避免在任何地方使用静态。我必须这样做以简化示例。查看Java 教程,了解更多关于 Java 编程的信息,重点是数组和static
关键字的使用。
推荐阅读
- android - 视图上具有可观察实例字段的双向数据绑定?
- r - 如何从数据集中排除值?
- ffmpeg - 有没有办法用 FFMPEG 处理不连续性?
- c++ - std::is_invocable<...> 检查成员函数
- php - SQL 从 id 中选择名字
- javascript - 如何在 Azure Maps 的地图视图边界中获取所有可见点
- python - 如何在 Python(plotly.express,px)中使用 Plotly Expess 仅显示图例的子集?
- c# - 如何从虚拟机连接 C# 和 MySQL?
- json - 无法从 JSON 中删除或拼接行
- java - RecycleView 和 CardView 项目、边距和居中