Java 打印字母Aa Bb Cc Dd

Java 打印字母Aa Bb Cc Dd,java,Java,我试图打印Aa Bb Cc,但它总是重复A到z然后B到z char ch, ch2; for(ch = 'A'; ch <= 'Z'; ch++){ for(ch2 = 'a'; ch2 <= 'z'; ch2++) System.out.println(ch + "" + ch2); charch,ch2; 对于(ch='A';ch您不需要嵌套循环: 最后,由于ch-'A'+'A属于int类型,并且希望它是'A',而不是96,我们将int-bak转换

我试图打印Aa Bb Cc,但它总是重复A到z然后B到z

char ch, ch2;
    for(ch = 'A'; ch <= 'Z'; ch++){
    for(ch2 = 'a'; ch2 <= 'z'; ch2++)
       System.out.println(ch + "" + ch2);
charch,ch2;
对于(ch='A';ch您不需要嵌套循环:

最后,由于
ch-'A'+'A
属于
int
类型,并且希望它是
'A'
,而不是
96
,我们将int-bak转换为
(char)
,或者您可以使用
Character.toLowerCase(ch)
,正如M.Prokhorov在下面的评论中建议的那样:

 for(char ch = 'A'; ch <= 'Z'; ch++){
   System.out.println(ch + "" + Character.toLowerCase(ch));

for(char ch='A';ch正如@Dmitry所指出的,您不需要嵌套循环

由于字符的表示方式,Java
char
s可以转换为
int
s和从
int
s转换。有关这方面的详细信息,请参阅。它还有一个方便的每个字符的ASCII值图表。例如,
a
是ASCII 65,
a
是ASCII 97。也就是说,您可以使用c用于在大写字母和小写字母之间“转换”的do算法。大写字母和小写字母相差32

也就是说,您可以使用两行代码来实现这一点:

for(char ch = 'A'; ch <= 'Z'; ch++){
   System.out.println(ch + "" + (char)(ch + 32));

for(char ch='A';ch嵌套循环的工作方式:

步骤1:首先,编译器将检查第一个for循环中的条件

  • 如果条件为True,则For循环中的语句将 这意味着编译器将进入第二个For循环(在您的例子中,ch的值为“A”)。Goto 第二步

  • 如果条件为False,则编译器将退出For循环

步骤2:编译器将检查第二个for循环中的条件

  • 如果条件为True,则第二个For循环中的语句将 这意味着它将从语句1到N执行(在您的例子中是从'a'到'Z')
  • 如果条件为False,编译器将退出第二个For循环
步骤3:一旦退出第二个for循环,编译器将检查for循环内的条件(重复步骤1)(这里,外部循环变量ch的值为“B”,依此类推)

一个简单的技巧是在循环外初始化ch2变量,并使用一个简单的循环:

char ch, ch2 = 'a';
for(ch = 'A'; ch <= 'Z'; ch++){
   System.out.println(ch + "" + ch2++);}
}
charch,ch2='a';

对于(ch='A';ch你能解释一下这是什么意思吗?(char)(ch-'A'+'A')谢谢:D@iDevdevdev,这就是如何从大写字母中获取小写字母
char
(因为
char
在Java中是一种数字数据类型,并且它们遵循顺序)但是,它只适用于拉丁字符char,其他字母可能遵循不同的规则。我建议使用
character.toLowerCase(char)
和/或
character.toUpperCase(char)
而不是将
char
s相加和相减。@M.Prokhorov:谢谢!
character.toLowerCase(ch)
确实比算术(
C
习惯)可读性更强@M.Prokhorov谢谢Character.toLowerCase更容易理解谢谢!我会记住的
 for(char ch = 'A'; ch <= 'Z'; ch++){
   System.out.println(ch + "" + Character.toLowerCase(ch));
for(char ch = 'A'; ch <= 'Z'; ch++){
   System.out.println(ch + "" + (char)(ch + 32));
char ch, ch2 = 'a';
for(ch = 'A'; ch <= 'Z'; ch++){
   System.out.println(ch + "" + ch2++);}
}