【发布时间】:2022-01-06 12:09:58
【问题描述】:
程序太长了。
在上半部分是不是使用循环的方式。
我尝试使用 for loop i for 列并循环 2-9 以使其更短。
嵌套for循环时遇到问题。
import java.util.Arrays;
public class cardGameArray {
public static void main( String[] args ){
String[][] card = new String[4][13];
//Spades
card [0][0] = "SA";
card [0][1] = "S2";
card [0][2] = "S3";
card [0][3] = "S4";
card [0][4] = "S5";
card [0][5] = "S6";
card [0][6] = "S7";
card [0][7] = "S8";
card [0][8] = "S9";
card [0][9] = "ST";
card [0][10] = "SJ";
card [0][11] = "SQ";
card [0][12] = "SK";
//Hearts
card [1][0] = "HA";
card [1][1] = "H2";
card [1][2] = "H3";
card [1][3] = "H4";
card [1][4] = "H5";
card [1][5] = "H6";
card [1][6] = "H7";
card [1][7] = "H8";
card [1][8] = "H9";
card [1][9] = "HT";
card [1][10] = "HJ";
card [1][11] = "HQ";
card [1][12] = "HK";
//Diamonds
card [2][0] = "DA";
card [2][1] = "D2";
card [2][2] = "D3";
card [2][3] = "D4";
card [2][4] = "D5";
card [2][5] = "D6";
card [2][6] = "D7";
card [2][7] = "D8";
card [2][8] = "D9";
card [2][9] = "DT";
card [2][10] = "DJ";
card [2][11] = "DQ";
card [2][12] = "DK";
//Clubs
card [3][0] = "CA";
card [3][1] = "C2";
card [3][2] = "C3";
card [3][3] = "C4";
card [3][4] = "C5";
card [3][5] = "C6";
card [3][6] = "C7";
card [3][7] = "C8";
card [3][8] = "C9";
card [3][9] = "CT";
card [3][10] = "CJ";
card [3][11] = "CQ";
card [3][12] = "CK";
System.out.print("Spades"+"\n");
for(int i = 0; i<13; i++){
System.out.print(card[0][i]+"\t");
}
System.out.print("\n");
System.out.print("Hearts"+"\n");
for(int i = 0; i<13; i++){
System.out.print(card[1][i]+"\t");
}
System.out.print("\n");
System.out.print("Diamonds"+"\n");
for(int i = 0; i<13; i++){
System.out.print(card[2][i]+"\t");
}
System.out.print("\n");
System.out.print("Clubs"+"\n");
for(int i = 0; i<13; i++){
System.out.print(card[3][i]+"\t");
}
}
}
结果是:
Spades
SA S2 S3 S4 S5 S6 S7 S8 S9 ST SJ SQ SK
Hearts
HA H2 H3 H4 H5 H6 H7 H8 H9 HT HJ HQ HK
Diamonds
DA D2 D3 D4 D5 D6 D7 D8 D9 DT DJ DQ DK
Clubs
CA C2 C3 C4 C5 C6 C7 C8 C9 CT CJ CQ CK
我试试这个方法:
import java.util.Arrays;
int ans;
public class cardGameArray {
public static void main( String[] args ){
String[][] card = new String[4][13];
card[0][0] = SA;
//Spades
ans = short(card);
public static int short(int[] card ) {
for(int i = 1; i<9 i++){
for(int k = 2; i<9; k++){
card[0][i] = "S" + k;
}
}
return ans;
}
}
在钓到k 2 - 9 然后循环i 后变成这样,它有 81 个。
所以输出只显示S9;而不是 S2 - S9。
SA
S9
S9
S9
S9
S9
S9
S9
S9
S9
这个逻辑错误。
【问题讨论】:
-
如果您需要嵌套 for 循环的帮助,请向我们展示您的尝试。
-
关于重构工作代码的问题与 Stack Overflow 无关。你可以试试代码审查。在发布之前检查他们的规则
-
这个问题太笼统了。您的程序可以通过多种方式进行改进,所有这些都会导致程序“更小”。
-
第二个
for循环显然是错误的(i而不是k)但我不明白你为什么不以无限循环结束