我有while(true)循环,它用相机读取QR码。我想在读取有效QR码时暂停循环然后做某事(在数据库中插入值)然后继续循环读取其他QR码。我使用break并继续但是打破循环并继续跳过我不想要它们的代码。我正在使用C#和SQL server.Thanks提前
编辑:我没有任何问题,阅读Qr代码我的代码正常工作,我只需要知道如何暂停循环并做一些事情然后继续循环。下面是码。我可以用if语句停止片刻
\$?\s?(\d+(?:\.\d{1,2})?)
答案 0 :(得分:0)
我想我错过了一些东西,但这应该有效:
while (true) {
var data = ReadCode();
AddToDatabase( data);
//catch errors
}
答案 1 :(得分:0)
暂时没有暂停等循环的事情。一个循环不能暂停,但是一个while循环可以被打破,你可以退出循环。您可以将整个程序置于睡眠状态,这将“暂停”循环,实际上是整个程序。您还可以在满足条件时将循环捕获到块中,这也将“暂停”循环继续执行任何操作并输入该块完成它必须完成的操作然后再次继续循环。
为了捕获它,您可以使用一个标志,只要满足条件,就将标志设置为true,然后检查该标志是否为true,然后插入数据库或其他任何内容。 最后在循环结束时将标志设置为false。
这是一个非常简单的示例代码:
bool read = false;
while(true)
{
//Start reading your QR here or do whatever you want to do; However, make sure that the variable 'read' is set to true when you read the code
ReadQR();
//Now check if a code is read
if(read)
{
//Do whatever you want to do here if the code was read such as insertion to database, this technically will pause the loop and finish what's in this block then continue on with the loop, even though I highly recommend breaking your code into methods; for instance don't do the insertion logic here instead put the logic in a method and call it here.
InsertQRCodeToDb(code);
//Set the controller variable back to false
read = false;
}
}
P.S。出于好奇,你为什么要把1投入到int?为什么你的条件(int)1!= 0? 难道你不能把你的条件如同(真实)?或者虽然(1)这不是更简单,不需要铸造吗?