class Pattern4 {
public static void main(String args[]) {
for(int i=1;i<=5;i++) {
for(int j=1;j<=5;j++) {
System.out.print((char)(i+64));
}
System.out.println();
}
}
}
在此程序中,如果我不向char
关键字提供()
,则会遇到编译时间错误。所以我的问题是为什么有必要编写(char)
,然后写(i+64)
,为什么不char(i+64)
?
(i+64)
是int
,因为它是int
和int
的总和。
如果您想将其打印为int
,则无需做任何事情。
System.out.println(i + 64);
如果要将其打印为char
,则必须将其转换为一个:
System.out.println((char)(i + 64));
那只是java用于铸造的语法。
,因为 char(65)
是方法调用语法。您不是在以65
为参数的名为char
的方法,而是将65
施放到char
。
请记住,与口语语言不同,编程语言经过精心设计,以避免任何形式的歧义。这既是"用户友好性"(即使代码更清晰),也是从编写编译器和创建正确软件的实际必要性中。任何引入歧义的事物也可能"打破"编译器并引起微妙的,难以训练的错误。
(char)int是键入cast的语法。该语法不使用任何输入及其根据语言设计(不是函数,而是语言语法)。这告诉编译器接受类型为char而不是int。Java是强烈打字的语言,可确保类型的安全性。我们需要明确地告诉编译器何时需要更改类型,否则编译器会抱怨。
希望这阐明了为什么这不会在括号中输入:
abc(input);