上题回顾与解析
public class Question9 {
public static void main(String[] args) {
int minutes = 0 ;
for (int ms = 0; ms < 60 * 60 * 1000; ms++) {
if(ms % 60*1000 == 0) {
minutes ++ ;
}
}
System.out.println(minutes);
}
}
解析: 你有可能一下子就说出了 60 因为能整除 60 * 1000 的只能是 1 * 60 * 1000 ,2 * 60 * 1000 ….一直到 60 * 60 * 1000 一共60 个
但答案让你失望了,是60000 其实,这个的陷阱是在ms % 60*1000 == 0的操作符的优先级上 % 和 * 是同一级的 所以它是(ms % 60) * 1000 == 0 这样满足ms % 60就多了
每日一题
public static void main(String[] args) {
System.out.println("3 % 2 = "+(3 % 2));
System.out.println("2 % 3 = "+(2 % 3));
System.out.println("-3 % 2 = "+(-3 % 2));
System.out.println("-2 % 3 = "+(-2 % 3));
System.out.println("3 % -2 = "+(3 % -2));
System.out.println("2 % -3 = "+(2 % -3));
System.out.println("-3 % -2 = "+(-3 % -2));
System.out.println("-2 % -3 = "+(-2 % -3));
}