如果我有 n 个数字,最大数字是 6,最大字母是 F,最好的方法是什么。
A1
A2
A3
A4
A5
A6
B1
B2
etc..
int numList = 36;
char letter;
for (int i=1; i<=36; ++i){
int a = numList/6;
letter = 'A';
for (int j=0; j<= a; j++){
System.out.println(letter +"" + i);
letter++;
}
}
最佳答案
简而言之:
public static void main(String[] args) {
for (int i = 0; i < 6; i++) {
char c = (char) (i + 65);
for (int j = 1; j <= 6; j++) {
System.out.println("" + c + j);
}
}
}
长话短说:
你应该练习解决问题的技巧。理解这些小问题将为你的编程生涯提供很大支持。
解决问题时最重要的技能是分解小问题。首先,您会看到输出为: A1 A2 A3 ... B1 B2 B3 ..
看起来您可以将每个字符串(即:A1)分成两部分:A 的第一部分到 F 以及第二部分从 1 到 6。这是应用两个嵌套循环的众所周知的模式。这是伪代码:
public static void main(String[] args) {
for (char c = A to F) {
for (int j = 1; j <= 6; j++) {
System.out.println("" + c + j);
}
}
}
你看到了。第一个循环不正确(语法语法)。所以我们应该学习新的东西:Java中的char只是一个整数。 (这在大多数语言中都是如此,例如 C#、javascript ...)但并非全部。所以我查找ascii table这里。我看到 A
到 F
从 65, 66, 67, ... 开始,所以我可以用 6 个元素开始循环。我将每个元素添加到 65。例如:
0 -> 65 -> A
1 -> 66 -> B
2 -> 67 -> C
正如您所猜测的,它成为我在上面发布的最终代码。希望这对您有帮助:)
关于java - 嵌套循环模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40880456/