`
小明哥
  • 浏览: 89389 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

斯坦福大学开放课程: 《编程方法》第6课

阅读更多

第六课:操作符
readInt() 和 readDouble()函数,整形与浮点数的除法运算操作符,操作符优先级,类型转换,常量,布尔数据类型,值的比较,布尔表达式,短路求值,语句块,变量的作用域,if套嵌,switch语句,for循环语句,while循环语句

 

求余运算符只对整数适用,因为求余运算符对实数没有意义。

 

除法在整数和双精度上运算方法有点不同。当你在做除法时,如果两个参数均为整数,在这种情况下它会做整数除法,就是做除法后丢掉余数,所有你得到的依然是个整数。例如整数5除以整数2,你会得到结果为整数2,随之的余数1就丢掉了。要是其中有一个是实数的话,比如一个双精度实数,那么这里就会做实数除法并返回实数。所有对于这里的例子5除以2改成5除以2.0的话,结果就会得到2.5这个双精度实数而不是一个整数。

 

P = (x != 1) || (x !=2); 
 

 不论x取任何值,P都为真。这是一个典型的漏洞,编写程序的时候如果不考虑清楚逻辑就会出现重大的BUG,而且很容易让人迷惑。

 

短路计算,在不同情况下他们很是有用的。例如避免除数为0的情况出现,可以写为

P = (x == 0) && ((y/x)==0);
 

 如果x等于0,直接判断为假,不用处理后面的语句。这样你就永远不会有除数为0的情况。

 

switch条件必须是整数值,不可以是双精度类型。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics