【发布时间】:2020-01-22 01:24:48
【问题描述】:
我正在制作一个二十一点程序。在 cardDraw 方法中,我在返回之前最后有一个 for 循环,它应该打印每个数组值,但是当我运行程序时没有显示任何内容。此外,当我在 main 方法中打印数组时,每个值都是 0,即使我在方法中设置了值。有人可以解释为什么会发生这些事情吗?这可能是一个逻辑错误,但我在程序中的其他方法中遇到了这个问题。我们只允许使用一维数组。提前致谢。
最后一件事,你能收到这个网站的电子邮件通知吗
public class blackjack {
public static int [] drawCard(int [] cardValues, int [] otherUserCardValues) {
int duplicates = 0;
//fills array with cards
for (int count = 0; count == cardValues.length; count++) {
duplicates = 0;
cardValues [count] = (int)(Math.random() * 12) + 1;
//Checks for duplicate cards in one of the hands
for (int count2 = 0; count2 == cardValues.length; count2++) {
if (cardValues [count] == cardValues [count2]) {
duplicates++;
} //end of if (cardValues [count] == cardValues [count2])
} //end of for (int count2 = 0; count != 7; count++)
//Checks for duplicate cards in the other hand
for (int count2 = 0; count2 == cardValues.length; count2++) {
if (cardValues [count] == otherUserCardValues [count2]) {
duplicates++;
} //end of if (cardValues [count] == cardValues [count2])
} //end of for (int count2 = 0; count != 7; count++)
//makes it loop again if there are duplicates
if (duplicates > 4) {
count--;
} //end of if (duplicates > 4)
} //end of for (int count = 0; count != 7; count++)
for (int count = 0; count == cardValues.length; count++) {
System.out.println(cardValues[count]);
}
return cardValues;
} //end of cardDraw
public static void main(String[] args) {
//user variables
double money = 0;
int userCardTotal = 0;
int userCardCount = 0;
int [] lowerUserCards = {0, 0, 0, 0, 0, 0};
int [] higherUserCards = {0, 0, 0, 0, 0, 0};
int [] userCardValues = {0, 0, 0, 0, 0, 0};
String [] userCardNames = {"a", "a", "a", "a", "a", "a"};
String [] userCardSuits = {"a", "a", "a", "a", "a", "a"};
//dealer variables
int dealerCardTotal = 0;
int dealerCardCount = 0;
int [] lowerDealerCards = {0, 0, 0, 0, 0, 0};
int [] higherDealerCards = {0, 0, 0, 0, 0, 0};
int [] dealerCardValues = {0, 0, 0, 0, 0, 0};
String [] dealerCardNames = {"a", "a", "a", "a", "a", "a"};
String [] dealerCardSuits = {"a", "a", "a", "a", "a", "a"};
///////////////////////////////////////////////////////////////////////
//methods
userCardValues = drawCard(userCardValues, dealerCardValues);
dealerCardValues = drawCard(dealerCardValues, userCardValues);
} //end of main
} //end of class
【问题讨论】:
-
我想你想要
count < cardValues.length -
同样适用于
count2,if (cardValues [count] == cardValues [count2])的逻辑应改为排除count == count2时的逻辑 -
谢谢我怎么没听懂。老实说哇。顺便说一句,爱你的名字
-
你如何结束这个问题?