我正在用C编写一个小程序,我不希望我的while
循环退出,直到满足两个条件。
这是我的问题的一个例子:
int a, b, x;
a = 3;
b = 5;
x = 0;
while(x <= a && x <= b)
{
//do stuff
x++;
}
在x == a
但x != b
时,循环中断。这将评估为false && true
,它应返回false
,但无论如何它仍然会中断。
为什么我的循环提前结束?
答案 0 :(得分:4)
你正确回答了一半问题,让我重复并纠正你。
在 app.get('/api/v1/authenticated/admin/stats/get', function(req, res) {
let stats = {};
User.find().count(function(err, count){
stats.userCount = count;
console.log('usrCnt inside of db ' + stats.userCount); //defined. Shows in the console after the console.log below.
});
console.log('UsrCount outside of db ' + stats.userCount); //undefined
res.send(stats);
});
或x > a
(x < b
)时,循环中断。这将评估为x = 4
应返回true && false
,因此循环正在中断。
请注意,使用false
时,条件必须为&&
,整体条件为true
。
因此,如果您希望循环在条件均为假时退出 ,则使用true
||
现在,直到条件都是int a, b, x;
a = 3;
b = 5;
x = 0;
while(x <= a || x <= b)
{
//do stuff
x++;
}
,你的循环应该运行。
答案 1 :(得分:1)
您使用的逻辑CREATE OR REPLACE TRIGGER save_the_grades
BEFORE DELETE
ON grades
FOR EACH ROW
DECLARE
v_grade number(3);
BEGIN
SELECT grade INTO v_grade FROM Grades WHERE Names=:old.name;
INSERT INTO backup
(name, age, grade)
VALUES
(:old.name, :old.age, v_grade);
END;
(&amp;&amp;)运算符在此上下文中无效。你的循环没有过早破坏,当x晚于3时它就会破裂,这是正确的。相反,您希望使用逻辑and
运算符,该运算符称为双管道(||)