无限循环,逻辑思维

时间:2018-05-10 01:18:07

标签: c loops logical-operators

我在第一次参加该计划期间遇到任何未知的问题。它会告诉我一个无限循环问题程序关闭。该程序不会读取?声明。

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")

1 个答案:

答案 0 :(得分:0)

让我们从

开始逐行剖析您的代码
scanf("%c", &cont);

这一行会从stdin获取一个char值并将其放入cont,这是一个char,所以很好

getchar();

我必须说的是,为什么?它没有做任何有用的事情,删除它。

现在进入循环我们有这个陈述

if (cont == 'y' || cont  == 'Y')

这一行是正确的,它检查字符是否等于yY

else if (cont  != 'n' || cont  != 'N')

这一行是主要问题,你的语句检查cont是否是一个不等于nN的值,即上面提到的注释,如果用户输入值{{1这行将返回true,然后结束程序。要正确检查用户是否想要存在,可以使用与a

相同的if语句
y

如果用这个替换原来的if语句,你的程序应该按预期工作。请记住,将来if (cont == 'n' || cont == 'N') 表示不等于,即除!=n之外的值是否为真。如上所示N运算符检查是否相等,因此如果cont与==

的值相同,则行cont == 'n'表示返回true
'n'

另外请注意,请解释为什么你继续投掷无用的printf("Invalid Please Re-enter"); getchar(); scanf("%c", &cont); ,这些线条什么都不做,你应该删除它们。