我在編程方面的經驗很少,現在我正在大學讀編程課程。我們在課堂上遇到了一個問題,需要編寫一個程序,該程序可以生成從1到6的隨機數序列,並將括號放在一系列連續數字的周圍。例如,如果順序是12553124322223655631,程序將打印12(55)31243(2222)36(55)631。編寫一個程序,生成20個擲骰子的隨機序列
這裏是我到目前爲止的代碼:
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(inRun = false)'沒有做你想做的事。仔細看...... –
我不會使用增強for循環,因爲您可能需要知道這個指數。保持2個索引值:表示一段連續值的開始和結束。每當你得到下一個值時,檢查它是否與以前一樣。如果是,則提前「結束」索引。如果不是,則在開始和結束索引處添加括號,然後將索引重置爲當前索引。 – Carcigenicate
「將一系列連續數字放在括號內」,我不明白你給出的期望輸出是什麼意思。你的意思是重複數字嗎? – px06