Board logo

标题: [数值计算] 批处理中数值计算怎样理解? [打印本页]

作者: szjwxn    时间: 2011-10-22 22:48     标题: 批处理中数值计算怎样理解?

  1. set /a b=1
  2. set /a a+=b
  3. echo %a%
复制代码
问一下大侠,a+=b的意思是a=a+b吗?
如果是的话,那set /a a+=b之前并没有给a赋值,那a的值就是0了,
所以a=a+b就是0=0+b,即0=0+1
请大哥们指点迷津?万分感谢
作者: weichenxiehou    时间: 2011-10-22 22:58

本帖最后由 weichenxiehou 于 2011-10-22 22:59 编辑

set/a a+=b等于set/a a=a+b==>理解没错!表示将a+b的值赋予a,这里的"="是赋值符号,并不是等号。
作者: sxw    时间: 2011-10-23 00:36

  1. 所以a=a+b就是0=0+b,即0=0+1
复制代码
应该是a=0+1
作者: broly    时间: 2011-10-23 00:45

=号在那里不是逻辑符号,而是赋值符号。把后面的值赋值给=号前面的值
作者: szjwxn    时间: 2011-10-23 08:56

谢谢各位的回答,那a+=b,这里的=是什么符号?+号是什么符号?是赋值符号吗?
作者: weichenxiehou    时间: 2011-10-23 09:03

回复 5# szjwxn
set/a里所有的=号都是赋值符号。等号(==)只存在于if判断中。
作者: CrLf    时间: 2011-10-23 09:10

+= 是一组符号,至少在 set /? 中是这么表达的,为什么要把它们分割开呢?不明白楼主既然能理解 set /a a=a+b 还有什么疑惑呢?
作者: szjwxn    时间: 2011-10-23 09:32

本帖最后由 szjwxn 于 2011-10-23 09:34 编辑

谢谢版主的解答,我明白了,a+=b,  +=在这里所执行的就是a=a+b这样的结果
再问一下,a=a+b,这里的第一个a和等号后面的a有什么区别?
作者: garyng    时间: 2011-10-23 15:36

set /a a+=b
是 下一个a的值=现在a的值+b的值

set /a a=a+b
下一个a的值=现在a的值+b的值

都一样的~
(不知有理解错吗)
作者: szjwxn    时间: 2011-10-23 21:38

谢谢解答,不胜赐教




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2