标签: while-loop

如何在tsql中实现do-while循环

我试图想出如何在TSQL中实现它

do 
  update stuff set col = 'blah' where that_row = 'the right one'
  select trash from stuff ...
until some_condition
Run Code Online (Sandbox Code Playgroud)

Transact-SQL提供的唯一迭代控制流句是while (condition) sentences首先评估条件,如果该条件为真,则执行该句子.

我正在思考一个场景,比如在表上执行UPDATE语句,直到某个条件被触发,直到执行了最后一个UPDATE.

最重要的是,我正在寻找解决这个问题的不那么肮脏的方法(在WHILE之前复制UPDATE对我来说没有多大意义,因为UPDATE语句可以任意长而复杂)


编辑:我正在尝试解决的问题涉及同一个表下的多个UPDATE语句,每个语句都采用并转换前一次迭代的值.这在一个大的UPDATE语句中是不可能的,因为每行只会被评估和更新一次,所以循环是我能弄清楚这个混乱工作的唯一方法.

sql t-sql sql-server while-loop flow-control

30
推荐指数
1
解决办法
3万
查看次数

空循环的Python语法

我写了这个:

    while file.readline().startswith("#"):
        continue
Run Code Online (Sandbox Code Playgroud)

但我怀疑这continue是不必要的?我正在努力实现的正确语法是什么?

python while-loop

30
推荐指数
1
解决办法
3万
查看次数

for或while循环做n次

在Python中,您有两种不止一次重复某些操作的好方法.其中一个是while循环,另一个是for循环.那么让我们来看看两个简单的代码:

for i in range(n):
    do_sth()
Run Code Online (Sandbox Code Playgroud)

和另外一个:

i = 0
while i < n:
    do_sth()
    i += 1
Run Code Online (Sandbox Code Playgroud)

我的问题是哪一个更好.当然,第一个在文档示例中非常常见,在Internet上可以找到各种代码,它更优雅,更短,但另一方面它创建了一个完全无用的整数列表,只是为了循环他们.这不是浪费内存,特别是涉及大量的迭代吗?

那么您怎么看?哪种方式更好?

python performance loops for-loop while-loop

30
推荐指数
3
解决办法
8万
查看次数

Java for循环与while循环.性能差异?

假设我有以下代码,有三个for循环来做某事.如果我将最外部的for循环更改为while循环,它会快速运行吗?谢谢~~

int length = 200;
int test = 0;
int[] input = new int[10];

for(int i = 1; i <= length; i++) {
    for (int j = 0; j <=length - i; j++) {
        for (int k = 0; k < length - 1; k++) {
            test = test + input[j + k];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java for-loop while-loop

29
推荐指数
4
解决办法
8万
查看次数

使用sleep()时高效快速的Python while循环

我试图使用Pyserial通过串口与设备通信.由于需要不断发送命令,因此必须将它们放在Python中的while循环中.

我目前正在使用这段代码,并看看python进程需要100%的CPU:

while True:
    #do some serial sending here
    time.sleep(0.2)
Run Code Online (Sandbox Code Playgroud)

这段代码有效.但是,发送速度很慢.我试图通过减少sleep间隔来加快速度,但似乎加载CPU太多了.

简而言之,是否有任何方法可以永久有效地迭代while循环,同时仍然保持较低的CPU资源消耗?

python while-loop pyserial

29
推荐指数
2
解决办法
5万
查看次数

如何继续工作?

我试图了解"继续"的工作原理.我理解了关键字的概念,但是当我运行不同的程序时,它的工作方式不同: - /让我向您展示一些示例:

如果我运行这个程序:

int j = 0;
int i = 0;
LABEL1: for (; i < 3; i++) {
  if (true)
    continue;
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我的价值将是3.让我们添加一个外循环:

int j = 0;
int i = 0;
LABEL2: for (; j < 3; j++) {
  LABEL1: for (; i < 3; i++) {
    if (true)
      continue LABEL2;
  }
}
Run Code Online (Sandbox Code Playgroud)

我的价值将是... 0 !! 我不明白为什么如果继续使用带有转到外部循环的标签,我不会增加.有人能解释一下为什么吗?你有一些棘手的东西吗?还是做了一段时间?

我非常感谢您提供的任何帮助.

java for-loop continue break while-loop

29
推荐指数
4
解决办法
4762
查看次数

在实现无限循环时,使用while(1)vs for(;;)vs goto(在C中)是否存在差异?

在实现无限循环时,使用while(1)vs for(;;)vs 会有区别goto吗?

谢谢,陈兹

c loops for-loop goto while-loop

28
推荐指数
3
解决办法
9037
查看次数

Python循环时的赋值条件

在C中,人们可以做到

while( (i=a) != b ) { }
Run Code Online (Sandbox Code Playgroud)

但在Python中,它似乎不可能.

while (i = sys.stdin.read(1)) != "\n":
Run Code Online (Sandbox Code Playgroud)

生成

    while (i = sys.stdin.read(1)) != "\n":
         ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

( ^应该在=)

有解决方法吗?

python loops while-loop conditional-statements

28
推荐指数
4
解决办法
1万
查看次数

c#中最有效的循环是什么

有许多不同的方法可以通过c#中的对象项来完成相同的简单循环.

这让我想知道是否有任何理由表现或使用方便,以至于在另一方面使用.或者仅仅是个人偏好.

拿一个简单的对象

var myList = List<MyObject>; 
Run Code Online (Sandbox Code Playgroud)

让我们假设对象已填充,我们想迭代这些项目.

方法1.

foreach(var item in myList) 
{
   //Do stuff
}
Run Code Online (Sandbox Code Playgroud)

方法2

myList.Foreach(ml => 
{
   //Do stuff
});
Run Code Online (Sandbox Code Playgroud)

方法3

while (myList.MoveNext()) 
{
  //Do stuff
}
Run Code Online (Sandbox Code Playgroud)

方法4

for (int i = 0; i < myList.Count; i++)
{
  //Do stuff   
}
Run Code Online (Sandbox Code Playgroud)

我想知道的是,每个编译成同样的东西?使用一个比其他人有明显的性能优势吗?

或者这只是编码时的个人偏好?

我错过了吗?

c# foreach loops for-loop while-loop

28
推荐指数
1
解决办法
3万
查看次数

MySQL插入与While循环

我正在尝试在我的MySQL数据库中创建一堆记录.这是一次创建,所以我不是要创建存储过程.这是我的代码:

BEGIN
SET i = 2376921001;
WHILE (i <= 237692200) DO
    INSERT INTO `mytable` (code, active, total) values (i, 1, 1);
    SET i = i+1;
END WHILE;
END
Run Code Online (Sandbox Code Playgroud)

这是错误:

[查询1中的错误]您的SQL语法中有错误; 查看与您的MySQL服务器版本对应的手册,以便在'SET i = 2376921001 WHILE(i <= 237692200)附近使用正确的语法DO INSERT INTO coupon(第2行的couponCod'执行停止!

我尝试了一个具有相同结果的声明.代码如下:

BEGIN
DECLARE i INT unsigned DEFAULT 2376921001;
WHILE (i <= 237692200) DO
    INSERT INTO `mytable` (code, active, total) values (i, 1, 1);
    SET i = i+1;
END WHILE;
END
Run Code Online (Sandbox Code Playgroud)

我尝试过的另一件事是@i而不是我.同样的错误.谁能看到我做错了什么?

mysql while-loop

28
推荐指数
2
解决办法
9万
查看次数