public class decisionMaker {
public static void main(String args[]) {
String option[] = new String[10];
// Output
for (int i = 0; i <= 9; i++) {
Scanner input = new Scanner(System.in);
System.out.print("Enter the next option:");
option[i] = input.next();
System.out.println(" ");
}
for (int i = 0; i <= 9; i++) {
System.out.println("option: ");
System.out.println("option[i]+" ");
}
// Output
}
我试图找出如何在选项中添加计数,在输入特定字母或数字后退出和结束程序,以及如何从用户输入创建随机输出。我想让它给我一个随机输入的选项。任何人都可以帮助我解决这些问题中的一个或几个。我试图学习自己编码,而且我坚持这些。
答案 0 :(得分:1)
您可以使用java.util.Random;
生成随机数:
import java.util.Random;
public class SomeClass{
static Random rand = new Random();
public static void main(String args[]){
System.out.println(rand.nextInt());
}
}
如果要使用System.out.println()
打印变量的值,则只需键入变量而不带任何引号。您在下面编写的代码将无法编译:
System.out.println("option: ");
System.out.println("option[i]+" ");
假设这是你想要做的,它应该写成:
System.out.println("option: ");
System.out.println(option[i]);
甚至是System.out.println("option: \n"+option[i]);
(转义序列\n
放在引号内时只是向控制台指示添加新行。)
此外,正如nick zoum指出的那样,Scanner
对象应该在for
循环的外初始化,例如main()
方法的正下方
如果您需要澄清或者我误解了您的要求,请在下面发表评论。很难理解你的问题。
答案 1 :(得分:0)
您可以尝试这样的事情:
public class DecisionMaker {
public static void main(String[] args) {
// output
Scanner scanner = new Scanner(System.in);
int size = getInt(scanner);
String option[] = new String[size];
for (int index = 0; index < size; index++) {
System.out.print("Enter the next option:");
option[index] = scanner.next();
}
int index = (int) (Math.random() * size);
System.out.println(option[index]);
scanner.close();
// output
}
public static int getInt(Scanner scanner) {
int size = 0;
while (size <= 0) {
if (scanner.hasNext()) {
if (scanner.hasNextInt()) {
size = scanner.nextInt();
}
}
if (size <= 0) {
System.out.println("The input: " + scanner.next() + " is not a valid value.");
}
}
return size;
}
}
Scanner
在开头初始化,只有。{1}}
一个例子。
然后程序将等到用户为其插入有效数字 选项的大小。
接下来的5行基本上是从你的代码中复制过来的。
最后,我们得到Integer
范围内的随机0 - (size - 1)
并打印
带有该索引的数组的字符串。