- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个程序可以帮助用户学习乘法表,然后显示正确/错误答案的结果。第一步是简单地询问用户想要使用哪个乘法表(1-9)。然后用户将得到一个随机数字序列乘以所选的乘法表。如果用户回答正确,则该数字将不会再次显示,但如果错误,则会显示该数字,直到做出正确答案。
一种情况是用户选择“3”,然后它将以随机序列显示,例如(3x7 =、3x1 =、3x9 =...)。用户将在每个“=”后回答。现在,我只能按升序打印所有内容,我应该在 while 循环中使用随机乘以所选表吗?
我的第二个问题是如何再次询问错误回答的数字,直到正确回答为止?在这种情况下,我认为 for 循环不是最佳选择吗?
这是迄今为止我的代码:
public class Multiplication {
public static void main (String[] args) {
Scanner inread = new Scanner (System.in);
int answer;
System.out.println("Choose multiplication table (1-9)");
int num1= inread.nextInt();
for (int i=1; i<11; i++) {
System.out.println("Write answer after = ");
System.out.println(num1 + " x " + (i) + " = ");
answer=inread.nextInt();
if (answer == (num1 * i) ) {
System.out.println("Correct answer");
// Do not show that number again
}
else {
System.err.println("Wrong answer");
//Show this number again.
}
}
}
}
int num1 = inread.nextInt(); 之后的新代码
unanswered.add(1);
unanswered.add(2);
unanswered.add(3);
unanswered.add(4);
unanswered.add(5);
unanswered.add(6);
unanswered.add(7);
unanswered.add(8);
unanswered.add(9);
unanswered.add(10);
Collections.shuffle(unanswered);
while (!unanswered.isEmpty()) {
System.out.println(num1 + "*" + "unanswered" + " = "); //?
answer = inread.nextInt();
if (answer == (num1 * unanswered)) { //?
unanswered.remove(unanswered); //?
}
}
所以,我认为这几乎就是你建议的方式?不过我确信我可以以更漂亮的方式添加数字。我习惯于使用 for 循环遍历列表,然后使用计数器显示列表。那么我在哪里加了“?”是因为我不确定如何指定我正在尝试的列表中的位置,例如删除数字。
或者我应该在原来的 for 循环中添加 while 循环?这样我就可以在 for 循环中使用 (i) 来指定我将在列表中显示并可能删除的位置?
最佳答案
一个好问题,也是编码的良好开端。
在解决所有乘法问题之前请求输入的一种方法是 while
环形。正如 @Easton 指出的 ArrayList存储数字和 Collections.shuffle将帮助进行设置。通过提前创建 ArrayList,然后使用 while loop直到为空提示用户继续回答。
编辑
朝着正确的方向前进。为了简化未应答数字的创建,请使用 for 循环,例如: for(i=1, i<=10,i++)
然后将(i) 添加到未答复。
在 while 循环中,获取第一个索引:unanswered[0]
并将其设置为 num1
然后,如果答案正确,请将其删除(就像现在一样)。如果不使用Collections.rotate未回答的问题 1。这会将未回答的问题移至数组末尾,以便稍后再次尝试。
关于java - 乘法口诀表,提问,直到做出所有正确答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51847401/
我创建了一个库项目,然后构建它,获取 .aar 并解压缩它。获取包含库的 classes.jar 文件,并将其添加到另一个项目中。该项目识别我的文件,我可以从中调用方法和函数。我的问题是我尝试从我的库
这不是现实世界的问题,我只是想了解如何创建 promise 。 我需要了解如何为不返回任何内容的函数做出 promise ,例如 setTimeout。 假设我有: function async(ca
我是 Promise 的新手。我写了两个例子: 第一个是: new RSVP.Promise(function (resolve, reject) { setTimeout(function
我有一个 nodejs (express) 作为服务器端,一个 angular 6 作为客户端。在服务器中我有中间件功能,可以进行 session 检查。如果 session 无效或不存在,我想向客户
我有一个 nodejs (express) 作为服务器端,一个 angular 6 作为客户端。在服务器中我有中间件功能,可以进行 session 检查。如果 session 无效或不存在,我想向客户
我有四个 I/O 操作:A、B、C 和 D。它们中的每一个都应该使用 vertx.executeBlocking 来执行。我应该有以下行为: //PSEUDOCODE waitForExecuteBl
我是一名优秀的程序员,十分优秀!