Java 中的印度地图图案

17 Mar 2025 | 6 分钟阅读

在本节中,我们将创建 Java 程序,使用 for 循环、while 循环和混淆代码打印 **印度地图图案**。

India Map Pattern in Java

IndiaMapPattern1.java

输出

India Map Pattern in Java

通过修改以上程序中的以下语句,我们还可以打印出不同的设计模式。

在上面的程序中,将打印语句替换为上述语句。修改程序后,再次执行代码。它将显示以下印度地图图案。

India Map Pattern in Java

让我们更改以下语句中的值。


India Map Pattern in Java

让我们放入另一个值,看看图案。


India Map Pattern in Java

我们观察到,仅通过修改上述语句中的值,我们就可以打印出不同的印度地图图案。请注意,该值必须在 **32** 到 **39** 或 **42 到 49** 之间。

使用混淆代码

以下代码是 混淆 代码。混淆是故意创建人类难以理解的 源代码机器码 的行为。编写和阅读混淆的源代码是一个脑筋急转弯的过程。

在下面的程序中,我们定义了一个不可读的字符串 s。它代表印度地图的游程编码。该字符串处理要打印的空格和字符或符号。这意味着有多少个空格和符号(我们要打印)会在控制台上打印。

注意编码字符串末尾的 [b+++21]。因为 b+++21 等同于 (b++ + 21),它将计算为 31 (10 + 21),该字符串的前 31 个字符将被忽略,没有任何作用。其余编码的字符串包含绘制地图的指令。单个字符决定了连续绘制多少空格或感叹号。

外层 for 循环

此循环遍历字符串中的字符。每次迭代都会增加 b 的值,并将字符串中的下一个字符赋给 a。

内层 for 循环

此循环绘制单个字符,并在到达行尾时绘制换行符。考虑以下打印语句。

由于 'Z' 在 ASCII 中代表数字 90,90/9 将得到 10,一个换行符。十进制 33 是 '!' 的 ASCII 码。切换 33 的低位比特会得到 32,这是空格的 ASCII 码。这会导致当 b 为奇数时打印 '!',当 b 为偶数时打印空格。

IndiaMapPattern2.java

输出

India Map Pattern in Java

使用 for 循环

IndiaMapPattern3.java

输出

India Map Pattern in Java