1

该脚本应该打印“输入要添加的嵌套编号:”并继续执行此操作,直到用户输入负数。此时它应该打印正数的总和。然而,正如循环要求下一个数字一次,它被输入,然后不再询问,脚本只是停止做任何事情,甚至没有到达循环中的下一行。

#!/bin/csh -x
#
# This script adds positive numbers entered by the user, stopping
# when a negative number is added
# Usage: +#, +#, +#... -#. 
#
@ x=0
@ sum = 0
while($x>= 0)
echo -n  "Enter the next number to be added: "
@ sum = $sum + $<
@ x = $<
end
#
exit 0
4

1 回答 1

1

$<从标准输入读取一行。这必须分配给一个变量,否则如果$<第二次使用,脚本将在继续之前期待进一步的输入。

@ x=0
@ sum = 0
while ($x >= 0)
   echo -n  "Enter the next number to be added: "
   @ x = $<
   if ($x >= 0) then
      @ sum = $sum + $x
   endif
end
echo $sum
exit 0
于 2013-04-16T23:08:58.717 回答