gpt4 book ai didi

java - 编写一个程序,生成 20 次掷骰子的随机序列

转载 作者:行者123 更新时间:2023-11-30 02:44:51 24 4
gpt4 key购买 nike

我在编程方面的经验很少,而且我现在正在大学学习我的第一门编程类(class)。我们在类里面遇到一个问题,要编写一个程序,生成从 1 到 6 的随机数序列,并将括号放在一系列连续数字周围。例如,如果序列为 12553124322223655631,则程序将打印 12(55)31243(2222)36(55)631。

这是我到目前为止的代码:

package inRun;
import java.util.Random;

public class Prob612 {
public static void main(String args []){
Random rand = new Random();
boolean inRun = false;
int i = 0;

int [] values;
values = new int[20];


while (i < values.length){
int j = rand.nextInt(7);
if (j > 0 && j <= 6){
values[i] = j;
i++;
}
}

for (i = 0; i < values.length; i++){
if (inRun){
if (values[i] != values[i + 1]){
System.out.print(")");
inRun = false;
}
}
if (inRun = false){
if (values[i] == values[i - 1]){
System.out.print("(");
inRun = true;
}
}
System.out.print(values[i]);
}

if (inRun){System.out.print(")");}
}

}

当我运行这个程序时,它会打印序列,但不带括号。我想我需要使用增强的 for 循环,但我不知道如何使用这样的程序来做到这一点。任何见解将不胜感激。谢谢。

最佳答案

你已经差不多解决了。需要注意两点:

  • 您在 if 语句中将 boolean 值指定为 false。 (inRun = false) 应为 (inRun == false)
  • 在最后一项上时,您的值[i + 1] 超出了数组。

这应该可以做到。

  boolean inside = false;

for (int i = 0; i < values.length; i++) {
if (inside) {
if (values[i] != values[i - 1]) {
System.out.print(')');
inside = false;
}

} else {
if (i < values.length - 1) {
if (values[i + 1] == values[i]) {
System.out.print('(');
inside = true;
}
}
}
System.out.print(values[i]);
}

关于java - 编写一个程序,生成 20 次掷骰子的随机序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40491728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com