Discuss / Java / 打卡2019-05-17

打卡2019-05-17

Topic source

boolean isPrimaryStudent = age >=6?(age <= 12?true:false):false;

灵逗士

#2 Created at ... [Delete] [Delete and Lock User]

nice,避免了短路运算

phantomVK

#3 Created at ... [Delete] [Delete and Lock User]

不要秀机智,短路运算是用来减少运算的,不是用来避免的。只要避开短路运算一定是垃圾运算。

boolean isPrimaryStudent = (6 <= age) && (age <= 12);

Cross__time

#4 Created at ... [Delete] [Delete and Lock User]

人家就是对的,你自己再思考下,啪啪啪打脸

感觉老师的意思就是减少运算,教程里表达的也是这个想法吧,本来不满足一个条件就pass了,判断两个不画蛇添足嘛

觅梨中

#6 Created at ... [Delete] [Delete and Lock User]

求教大家:

public class Main {
	public static void main(String[] args) {
		int age = 7;
		boolean isPrimaryStudent = age >= 6 ? (age <=12 ? "Y" : "F") : "F";
	    System.out.println(isPrimaryStudent);
	}
}

为啥会下面这一行会报错(Type mismatch: cannot convert from String to boolean)

boolean isPrimaryStudent = age >= 6 ? (age <=12 ? "Y" : "F") : "F";

@觅梨中 

boolean isPrimaryStudent = age >= 6 ? (age <=12 ? "Y" : "F") : "F";

式子age >= 6为true,返回(age <=12 ? "Y" : "F")

式子(age <=12 ? "Y" : "F")为true,返回"Y"

最后得boolean isPrimaryStudent = "Y"

"Y"是字符串类型,不能赋值给布尔变量isPrimaryStudent


  • 1

Reply