c1=ch<='Z'&&ch>='A'?' at ':ch; 首先,(ch<='Z')和(ch>='A')都是比较运算符,在Java中返回的要么是true要么是false,不是1和0。而它们能过布尔运算符&&相连。返回的结果也是true或false。只要字符型ch 的ASSIC值在'A'和'Z'之前,则为true,否则为false。只有两个小表达式同时满足是才为true。其它情况都为false。
表达式(ch<='Z')&&(ch>='A')为true时则把at值赋给c1,为false时则把ch的值赋给c1。
注意:Java是一种严格的类型语言,它不允许数值类型和布尔类型进行转换。有些语言,如C和C++允许用数值表示逻辑值,例如用0表示false,用1表示true。Java不允许这样做。 |