for循环/ while循环后面的逻辑

时间:2016-02-19 22:17:34

标签: loops

我需要帮助理解while循环/ for循环之间的逻辑差异,这里是示例代码:

#include<iostream>
 using namespace std;

int main(void)
{
 cout << "A multiplication table:" << endl
      << "  1\t2\t3\t4\t5\t6\t7\t8\t9" << endl
      << "" << endl;
 for(int c = 1; c < 10; c++)
 {
      cout << c << "| ";
      for(int i = 1; i < 10; i++)
      {
      cout << i * c << '\t';
      }
      cout << endl;
 }
 return 0;
}

我尝试将其重写为while循环,但结果是缺少信息。

#include <iostream>
using namespace std;


int main() {
  int i = 1;
int c = 1;
while (c< 10){
    cout << c <<"|";
    c++;
    while (i< 10){
        cout << i * c << '\t';
        i++;


    }
    cout << endl;
}

cin.clear();
cin.ignore();
cin.get();

return 0;
}

有人建议将i重置为1会得到剩下的结果,我很难理解为什么while循环需要重置而for循环没有。

2 个答案:

答案 0 :(得分:1)

MPMoviePlayerController

相当于:

for (i=0;i<n;i++) {
     dosomething;
}

代码中的问题是您没有在内循环中将i=0; while (i<n) { dosomething; i++; } 重置为1。 在c中循环内部声明i,而不是在它之外。

试试这个:

int i=1

答案 1 :(得分:1)

您必须设置i = 1才能在两个示例中获得预期的行为。对于for循环,这已经处理好了,因为在for循环的标题中,有一个for( int i = 1 ; ...; ...)。