相关疑难解决方法(0)

"for(;;)"优先于"while(1)"

我只是为了知识而问这个问题(因为我认为它与像我一样的初学者没有任何关系).
我读过C程序员更喜欢的

 for(; ;) {....}
Run Code Online (Sandbox Code Playgroud)

过度

 while(1) {....}
Run Code Online (Sandbox Code Playgroud)

因效率原因而无限循环.一种形式的循环比另一种循环更有效,或者仅仅是风格问题,这是真的吗?

c loops infinite-loop

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

用于(;;)的功能是什么?

可能重复:
"for(;;)"是否比"while(TRUE)"快?如果没有,为什么人们会使用它?

找到了这个for循环的代码.while(true)例如,使用它的确切功能是什么?它使用更少的内存吗?

c++ syntax

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

这个"for(;;)"语法在Javascript中是如何工作的?

for在开源Javascript库中遇到了一种奇怪的语法.

for (;;) {
}
Run Code Online (Sandbox Code Playgroud)

这甚至做了什么?谁能回答?

javascript syntax

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

2
推荐指数
1
解决办法
616
查看次数

for(;;)这是一个无限循环?

最近在进行c ++教程时,我遇到了一个如下所示的for循环:

for (;;){
   //Do stuff
}
Run Code Online (Sandbox Code Playgroud)

这是一个无限循环吗?我为什么要用这个while(1)呢?

c++

2
推荐指数
2
解决办法
274
查看次数

获得错误的毫秒延迟值

我试图获得 1 毫秒的延迟,但我得到了 15 倍的延迟。我也尝试过使用 windowsSleep(1)函数,这也给了我相同的结果。

为什么我没有得到精确的毫秒延迟?

因为它有 1 秒的延迟。

#include <iostream>
#include <Windows.h>
#include <thread>
#include <chrono>

void counter1();

auto main() -> int
{

    std::thread p(&counter1);
    p.join();
    return 0;
}

void counter1()
{
    int nStep = 0;
    const int STEP = 1000;
    auto start = std::chrono::high_resolution_clock::now();
    for (;;)
    {
        ++nStep; // incrementing every millisecond
        std::this_thread::sleep_for(std::chrono::milliseconds(1));
        if (nStep == STEP) {  // compares at second
            auto duration = std::chrono::high_resolution_clock::now() - start;
            std::cout << "counter took " <<
                std::chrono::duration_cast<std::chrono::seconds>(duration).count() …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading visual-studio c++-chrono

2
推荐指数
1
解决办法
80
查看次数

C:使用for(;;)有什么好处吗?

我找到了这个实现char * strchr (const char *string, int c);:

for (;;) 
  if (*string == c)
    return (char *) string;
  else if (*string == '\0')
    return NULL;
  else
    string++;
Run Code Online (Sandbox Code Playgroud)

但对我来说,这相当于执行以下操作,这将更容易阅读:

while (*string != c && *string != '\0')
  string++;

return (*string == c) ? ((char *) string) : (NULL);
Run Code Online (Sandbox Code Playgroud)

我认为libc有一些原因可以实现第一个.但任何看法背后的原因是什么?

c

1
推荐指数
1
解决办法
97
查看次数

哪个无限循环更适合使用

可能重复:
"for(;;)"是否比"while(TRUE)"快?如果没有,为什么人们会使用它?

我一直在阅读作者使用的编程书(java)for(;;)而不是while(true).这件事真的开始让我烦恼所以我认为我应该检查哪个是最好用的,如果有任何差异.以下是可能的无限循环:

for(;;){

}

while(true){

}

do{

}while(true)
Run Code Online (Sandbox Code Playgroud)
  • 哪个更喜欢使用?
  • 在性能上是否有任何差异(比如你必须测试在while的情况下是否为真)或者它们是否编译成相同的东西?

c c++ java loops

0
推荐指数
1
解决办法
524
查看次数