黑马程序员技术交流社区
标题:
运算的结果是否一样的 ?
[打印本页]
作者:
imdarling0213
时间:
2012-7-23 23:36
标题:
运算的结果是否一样的 ?
(var1%var2)/var3 和 var1%(var2/var3) 运算结果一样嘛 ? 请详细点· · · 谢谢 解释下。
作者:
刘建素
时间:
2012-7-23 23:46
本帖最后由 刘建素 于 2012-7-23 23:51 编辑
结果肯定不一样 根据运算符优先级的话 都是先计算括号里边儿的 第一是求var1%var2的余数 然后再除以3 第二个是 先计算 var2除以var3的 然后再用 var1与其余数 这样出来结果肯定不一样 举例说明:
int var1 = 3;
int var2 = 14;
int var3 = 6;
int count1 = (var1%var2)/var3;
int count2 = var1 % (var2 / var3);
Console.WriteLine("结果1为:"+count1+"结果2为:"+count2);
Console.ReadKey();
输出为 count1为0,count2为1
作者:
许庭洲
时间:
2012-7-24 08:57
int var1=100;
int var2=21;
int var3=6;
1, (var1%var2)/var3 //输出:4
2, var1%(var2/var3) //输出:1
3, var1 = var2 / var3; //var1是var2除以var3所得的值
4, var1 = var2 % var3;//var1是var2除以var3所得的余数
作者:
ARMdong
时间:
2012-7-24 09:27
看得出来楼主是以为初学者,其实这两个表达式很好理解,我们把它看成数学表达式,这里我用a,b,c来表示上面的三个变量
(var1%var2)/var3 就表示a和b相除取余数然后再和c相除得到结果1
var1%(var2/var3) 就表示b和c相除取商,然后再将a与商进行相除取余得结果2,显然不相等
希望楼主学习更上一层楼
作者:
李宏利
时间:
2012-7-24 11:33
优先级 类别 运算符
1 基本 (x) x.y f(x) a[x] x++ x――
new typeof sizeof checked unchecked
2 单目 + - ! ~ ++x ――x (T)x
3 乘法与除法 * / %
4 加法与减法 + -
5 移位运算 ≤ ≥
6 关系运算 ﹤ > <= >= is
7 条件等 = = ! =
8 位逻辑与 &
9 位逻辑异或 ^
10 位逻辑或 |
11 条件与 &&
12 条件或 ‖
13 条件 ?:
14 赋值 = *= /= %= += -= <<= >>= &= ^= |=
作者:
赵鹏程
时间:
2012-7-24 13:28
带数字进去计算,%表示两数相除取余数, /表示两数相除,取商
作者:
imdarling0213
时间:
2012-7-24 20:42
我也说 不一样嘛 · C#入门经典 第五版 难道出错了 ! 需要 我去网上咨询下的 · · · 呼呼。 谢谢各位了
作者:
王辉
时间:
2012-7-26 07:48
当然不一样了,这里涉及到运算符的优先级,
“(var1%var2)/var3”先运算“(var1%var2)”别名设为“表达式一”再运算“表达式一/var3”;
“var1%(var2/var3)”先运算“(var2/var3)”别名设为“表达式二”再运算“var1%表达式二”。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2