Java 打印一行点和其他两个代表答案的符号
我需要创建一条有100个点但在不同位置有2个符号的线。一个是“X”,这是真实答案,另一个是“O”,代表用户的猜测。真实答案(“X”)是一个随机变量,用户猜测(“O”)是用户的输入 它必须是这样的: O….XJava 打印一行点和其他两个代表答案的符号,java,Java,我需要创建一条有100个点但在不同位置有2个符号的线。一个是“X”,这是真实答案,另一个是“O”,代表用户的猜测。真实答案(“X”)是一个随机变量,用户猜测(“O”)是用户的输入 它必须是这样的: O….X 我刚开始需要一点帮助。该项目的其余部分已经完成,但这只是最后一步,我不知道如何继续。我尝试过使用数组,但没有成功。谢谢 一些伪代码让您开始 int userGuess = ... user giving you input int randomTarget = ... some random
我刚开始需要一点帮助。该项目的其余部分已经完成,但这只是最后一步,我不知道如何继续。我尝试过使用数组,但没有成功。谢谢 一些伪代码让您开始
int userGuess = ... user giving you input
int randomTarget = ... some random number
for (int i=0; i < 100; i++) {
if (i == userGuess) print "O"
else if (i == randomTarget) print "X"
else print "."
intuserguess=。。。给你输入的用户
int randomTarget=。。。一些随机数
对于(int i=0;i<100;i++){
如果(i==userGuess)打印“O”
否则,如果(i==randomTarget)打印“X”
否则打印”
作为记录:您需要计算当userGuess==randomTarget时打印什么
Java代码留给读者作为练习!这使用Java IntStream而不是循环
public static void main(String[] args)
{
int answer = 57;
int guess = 14;
IntStream.range(0, 100).forEach(i -> {
if (i == answer)
{
System.out.print('X');
}
else if (i == guess)
{
System.out.print('O');
}
else
{
System.out.print('.');
}
});
}
非常普通、直截了当的解决方案:
String foo(int answer, int guess, int size) {
char[] line = new char[size];
Arrays.fill(line, '.');
line[answer] = 'X';
line[guess] = 'O';
return new String(line);
}
请看如何提问。很好;除了命名-为什么不称它为“GeneratedAttedLine()”或其他什么。当它非常清楚应该做什么时,为什么称它为foo?!方法名称是主观的,很容易更改。并且您正在尝试为“永恒”给出答案;因此:以身作则。命名是编程最重要的方面之一。@GhostCat这正是我之所以称它为“foo”的原因。请看。(特别是)我们同意我们的不同意见。当编写仅为“显示”而存在的示例代码时,foo/bar是“有用”的名称一些概念作为代码。但是:你的方法有一个专门的目的。它有一个明确的含义。给它起一个“不”的名字是没有意义的。你看,foo/bar给人的印象是名称不重要。但它们确实重要!我不会向一个绝对的初学者建议流。我想他将有足够的困难来处理一个普通的for循环。