C ++ - for循环未运行

时间:2014-07-25 13:04:27

标签: c++ for-loop

有一个非常简单的代码,我用C ++构建。这是我的第一个C ++代码,所以我不完全确定某些地方的语法。但是,对于以下代码,我的for循环根本没有运行!我不明白为什么不...有人能发现问题吗?

#include <cstdlib>
#include <cmath>

using namespace std; 


int main () {
/*
 * Use values for wavelength (L) and wave number (k) calculated from linear 
 * dispersion program
 * 
 */


//Values to calculate
  double u;                            //Wave velocity: d*phi/dx
  double du;                  //Acceleration of wave: du/dt

  int t; 
//Temporary values for kn and L (taken from linear dispersion solution)

  float L = 88.7927;
  float kn = 0.0707624;

注意:我省略了变量声明以节省空间。

/*
 * Velocity potential = phi = ((Area * g)/omega) * ((cosh(kn * (h + z)))/sinh(kn * h))*cos(k*x - omega * t);
 * Velocity of wave, u = d(phi)/dx;
 * Acceleration of wave, du = du/dt;
 */

    for (t = 0; t == 5; t++) {
      cout << "in this loop" << endl;
      u = ((kn * A * g)/omega) * ((cosh(kn * (h + z)))/sinh(kn * h)) *  cos(omega * t);
      du = (A * g * kn) * ((cosh(kn * (h + z)))/sinh(kn * h)) * sin(omega * t); 
      cout << "u = " << u << "\tdu = " << du << endl;
    }

    cout << L << kn << endl;

return 0;

}

我把“在这个循环中”作为测试并且它不会进入循环(编译好)..

先谢谢你看看这个!

4 个答案:

答案 0 :(得分:6)

t初始化为0t == 5将始终评估为 false ,因此您的for循环将永远不会运行。

更新

for (t = 0; t == 5; t++) {

for (t = 0; t < 5; t++) {

for Statement

重复执行语句,直到条件变为 false

  

for(init-expression; cond-expression ; loop-expression)

      statement;

答案 1 :(得分:1)

应该是:

  for (t = 0; t < 5; t++)

C ++中for循环的语法是:

for ( init-expression ; cond-expression ; loop-expression ) 
statement;

该语句仅在cond-expression为true时执行,在您的情况下,它永远不会为真。

答案 2 :(得分:1)

这很简单:for循环的条件为t == 5 - 只有t为5才会循环,但是因为您首先设置了t = 0,所以不会循环一次。我认为t < 5就是你想要的。

答案 3 :(得分:-1)

请查看 for loop 条件表达式提示:您将t初始化为0。