【发布时间】:2020-07-03 04:13:58
【问题描述】:
我很确定我的余数运算符在错误的位置,我尝试了几种不同的变体,程序仍然运行但不止一次拉同一张卡:
Card [] deck = {card0, card1, card2, card3, card4, card5, card6, card7, card8, card9, card10, card11, card12, card13,
card14, card15, card16, card17, card18, card19, card20, card21, card22, card23, card24, card25, card26, card27, card28,
card29, card30, card31, card32, card33, card34, card35, card36, card37, card38, card39, card40, card41, card42, card43,
card44, card45, card46, card47, card48, card49, card50, card51,
};
for (int i = 0; i<deck.length;i++){
deck[i] = deck[i%51];
}
for (int i = 0; i<deck.length; i++){
index = (int)(Math.random()*deck.length);
deck[index] = deck[i];
System.out.println(deck[i] + " ");
}
我知道这套牌并不是以最有效的方式创建的,这是由于任务的限制。我只包含了一小部分代码,因为我认为问题在于我的 for 循环和余数运算符。
【问题讨论】:
-
i%51是每次迭代的常数 -
请解释你的程序应该做什么,然后第一个for循环应该做什么,然后第二个for循环应该做什么。
-
deck[0]=deck[0%51]and deck[1]=deck[1%51]等等 -
如果在第二个循环的多次迭代中得到相同的
index值会发生什么?您的输出牌组将比原始牌组短。