java - 嵌套循环模式

标签 java while-loop nested-loops

如果我有 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这里。我看到 AF 从 65, 66, 67, ... 开始,所以我可以用 6 个元素开始循环。我将每个元素添加到 65。例如:

0 -> 65 -> A
1 -> 66 -> B
2 -> 67 -> C

正如您所猜测的,它成为我在上面发布的最终代码。希望这对您有帮助:)

关于java - 嵌套循环模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40880456/

相关文章:

java - 发送原始 RIL 请求

java - 在 JXLabel 中的图标上显示文本

java - OSGI - 从另一个组件类中选择要激活的包

bash - 虽然文件不包含字符串 BASH

linux - While 在 bash 脚本中执行循环和变量?

java - 带有 sqlite 驱动程序的 Jar 可执行文件

PHP MySQL 生成新值,直到没有匹配项

javascript - 嵌套循环中的意外中断不会显示在调试器中

javascript - JSON 推送到 JavaScript 中的嵌套 JSON 对象

c - 简化 C 中的嵌套 for 循环