declare @i int? --定義局部變量@i
declare @j int? --定義局部變量@j
set @i=1??????? --給變量@i賦值
while @i<100? --最外層while循環控制計算20以內的質數,每循環一次提供一個數,判斷它是不是質數
? begin???????? --最外層while循環開始
??? set @j=1??? --給變量@j賦值,外層while每執行一次,它都被重新賦值為1
??? while @j<@i --內層while循環判斷外層while循環提供的@i是不是質數
????? begin
??? if @i=2 --如果@i的值為2就直接打印,因為2是質數
????? begin
??????? print cast(@i as char)
??????? break --退出內層while循環
????? end
??????? set @j=@j+1? --每次都從2開始除
??????? if @i%@j=0
????? begin
??????? break? --退出內層while循環
????? end
??? else
????? if @j=@i-1? --如果不能被2到@i-1之間的數整除,就說明是質數 內層if...else控制從2到@i-1除一邊
??????????? begin?
????????? print cast(@i as char) --打印質數
????????? break?? --退出內層while循環
??????? end
????? else
??????? begin
????????? continue --繼續下一次內層while循環,每繼續一次可以使@j的值增加1,從而使@j從2開始一直遞增,一直遞增到@i-1
??????? end
????? end
??? set @i=@i+1 --最外層while循環的語句,每次都會被執行,目的是使@i遞增1,從而進入下一次循環,從而判斷@i是不是質數
declare @j int? --定義局部變量@j
set @i=1??????? --給變量@i賦值
while @i<100? --最外層while循環控制計算20以內的質數,每循環一次提供一個數,判斷它是不是質數
? begin???????? --最外層while循環開始
??? set @j=1??? --給變量@j賦值,外層while每執行一次,它都被重新賦值為1
??? while @j<@i --內層while循環判斷外層while循環提供的@i是不是質數
????? begin
??? if @i=2 --如果@i的值為2就直接打印,因為2是質數
????? begin
??????? print cast(@i as char)
??????? break --退出內層while循環
????? end
??????? set @j=@j+1? --每次都從2開始除
??????? if @i%@j=0
????? begin
??????? break? --退出內層while循環
????? end
??? else
????? if @j=@i-1? --如果不能被2到@i-1之間的數整除,就說明是質數 內層if...else控制從2到@i-1除一邊
??????????? begin?
????????? print cast(@i as char) --打印質數
????????? break?? --退出內層while循環
??????? end
????? else
??????? begin
????????? continue --繼續下一次內層while循環,每繼續一次可以使@j的值增加1,從而使@j從2開始一直遞增,一直遞增到@i-1
??????? end
????? end
??? set @i=@i+1 --最外層while循環的語句,每次都會被執行,目的是使@i遞增1,從而進入下一次循環,從而判斷@i是不是質數
? end?????????? --最外層while循環結束
本文轉自terryli51CTO博客,原文鏈接:http://blog.51cto.com/terryli/519571?,如需轉載請自行聯系原作者