我在第一次参加该计划期间遇到任何未知的问题。它会告诉我一个无限循环问题程序关闭。该程序不会读取?
声明。
const loopFor = (time) => {
return {
milliseconds: (callback) => {
const start = Date.now()
while (Date.now() - start < time) {
if (!callback()){ //Break if callback returns false
break;
}
}
}
}
}
loopFor(100).milliseconds(() => {
console.log("Weeeeeeee, I'm looping")
let condition = 1 > 5 //Some abritrary condition
return condition
})
console.log("Done looping")
答案 0 :(得分:0)
让我们从
开始逐行剖析您的代码scanf("%c", &cont);
这一行会从stdin获取一个char值并将其放入cont,这是一个char,所以很好
getchar();
我必须说的是,为什么?它没有做任何有用的事情,删除它。
现在进入循环我们有这个陈述
if (cont == 'y' || cont == 'Y')
这一行是正确的,它检查字符是否等于y
或Y
else if (cont != 'n' || cont != 'N')
这一行是主要问题,你的语句检查cont是否是一个不等于n
或N
的值,即上面提到的注释,如果用户输入值{{1这行将返回true,然后结束程序。要正确检查用户是否想要存在,可以使用与a
y
如果用这个替换原来的if语句,你的程序应该按预期工作。请记住,将来if (cont == 'n' || cont == 'N')
表示不等于,即除!=
或n
之外的值是否为真。如上所示N
运算符检查是否相等,因此如果cont与==
cont == 'n'
表示返回true
'n'
另外请注意,请解释为什么你继续投掷无用的printf("Invalid Please Re-enter");
getchar();
scanf("%c", &cont);
,这些线条什么都不做,你应该删除它们。