循环什么时候被触发,以前上C的课弄不清楚。一直没搞懂,看SQL 游标循环处理的时候,发现当循环的条件发生变化的时候就开始判断条件是否符合,如果符合就开始循环。条件不变就会一下执行下面的语句。直接到循环条件发生变化再重新判断。
比如
declare @a int
set @a=1
while @a<100
begin
.....
set @a=@a+1
......
如果不遇上set @a=@a+1 就会一直执行。
是否一旦遇上@a值变化就会重新判断while 如果@a<100就会begin...
比如
declare @a int
set @a=1
while @a<100
begin
.....
set @a=@a+1
......
如果不遇上set @a=@a+1 就会一直执行。
是否一旦遇上@a值变化就会重新判断while 如果@a<100就会begin...
在循环过程中使用Break或者goto语句就会跳出循环,
按照你的例子,
当@a<100时,就会循环,
只要@a变化就会马上while判断
执行完begin end里面的东西后。
declare @a int
set @a=1
while @a <100
begin
.....
set @a=@a+1
end
------------
如果少了 set @a=@a+1,那么@a变量的值永远都是1,
那么在 while @a<100这个地方条件就永远都是成立的了。
这样就成了死循环了。。
--不是
declare @a int
set @a=1
while @a <100
begin
.....
set @a=@a+1
......
end
--每次执行进入循环体BEGINGEND之前
--都会对while后面的条件进行判断,就是判断@a是不是小于100,
--如果小于则进入循环体,
--如果大于或等于,则越过循环体(beginend)执行下面的语句
只是为了不停的改变@a变量的值,当@a的值递增到了100的时候
这样就不再满足@a<100了,不满足的时候,循环就终止了
意思第一次执行到end 然后再while 判断 而不是在@a=@a+1的时候判断?
意思第一次执行到end 然后再while 判断 而不是在@a=@a+1的时候判断?
恭喜你答对了