我有这个简单的程序,我试图输出一副牌中的所有牌。
但是它只输出每组1-9张卡,而不是面部卡。即只执行带有j
的for循环,而不执行涉及f
数组的for
cardFace
循环。这是为什么?
public class cards {
public final String cardValue[] = {"Heart", "Diamond", "Spade", "Club"};
public final String cardFace[] = {"Jack", "Queen", "King", "Ace"};
public void outputCards() {
for (int i = 0; i < cardValue.length; i++) {
int k = 1;
if (k <= 9) {
for (int j = 1; j <= 9; j++) {
System.out.println("The Card is a " + j + " And is a " + cardValue[i]);
k++;
}
} else {
for (int f = 10; f < cardFace.length; f++) {
System.out.println("The Card is a " + f + " And is a " + cardValue[i]);
k++;
}
}
}
}
}
答案 0 :(得分:4)
for(int i = 0; i <cardValue.length; i++){
int k = 1;
if(k <=9){
...
鉴于前面的代码,它将始终输入if而不输入else。因此,永远不会执行使用f变量的for。
答案 1 :(得分:1)
即使你的代码进入循环,它也永远不会运行,因为这种条件永远不会成立:
for(int f = 10; f < cardFace.length; f++){
如果你检查cardFace数组并获得它的长度,你会发现它总是小于f。
你的大部分逻辑都有点过时了。我建议您首先在纸上写出程序步骤,然后在尝试将其提交到代码之前考虑这些步骤,因为通常这些类型的错误都是在思考之前由编码引起的。