2013-04-18 145 views
0

我试图创建一个循环,增加了1,如果声明是真实的For循环添加一个变量

一个int变量每次但是当我测试,即使if语句是真实的代码中的变量不递增,仿佛我的for循环完全不加....

代码示例:

int left_jab_count; 
if(area >=100000 && area1 <100000) 
{ 
    cout<<"LEFT JAB HAS BEEN THROWN"" "<<area<<endl; 

    for(int left_jab_count = 0; left_jab_count < 0 ;++left_jab_count) 
    { 
     cout<<"Left Jab :"<<left_jab_count<<endl; 
    } 
} 

有谁能够看到我要去错在这里在哪里?

+4

为什么要声明'left_jab_count'两次? – JBentley

+3

另外,养成使用SPACEBAR的习惯 – dtech

回答

7
for(int left_jab_count = 0; left_jab_count < 0 ;++left_jab_count) 
             //^^^^left_jab_count is never < 0 
             // change <0 to some value larger than 0 

for循环永远不会执行。因此,left_jab_count将永远不会递增,您永远不会输入for循环的正文。

同时,您宣布left_jab_count两次。

+2

并且声明'left_jab_count'两次意味着'for'循环中声明的隐藏另一个,但只在'for'循环中。 –

+0

@MikeDeSimone是的,同意了。 – taocp

+0

thx为您的重播......我试图改变我的for循环的中间位,建议如下:\t int left_jab_count = 0; \t'如果(面积> = 100000 && AREA1 <100000) \t { \t \t COUT << “LEFT JAB已经扔””“<<区域<< ENDL; \t \t \t \t \t 为\t(INT left_jab_count = 0; left_jab_count <1; ++ left_jab_count) \t \t { \t \t \t COUT << “左戳刺:” << left_jab_count << ENDL; \t \t \t \t } \t \t }' – Tomazi

2

tacp已经充分涵盖了您当前代码的问题,所以我不会涉及这些问题。根据您的规格,“我试图创建一个循环,增加了1 if语句为真,int变量每次”,你要的是这样的:

int left_jab_count = 0; // Don't forget to initialise this 

while (true) // Replace with real loop 
{ 
    // Do NOT initialise left_jab_count here, otherwise it will be 
    // reset to 0 on every loop 

    // Insert code which changes area and area1 

    if (area >= 100000 && area1 < 100000) 
    { 
     cout << "LEFT JAB HAS BEEN THROWN " << area << endl; 
     left_jab_count++; 
    } 
} 

,除非你误述了您的规范,那么在if块内部不需要for循环。

+0

你破了一个'<<'。 –

+0

@MikeDeSimone谢谢,修正。 – JBentley

+0

我也试过你的解决方案,但变量只增加一次.....在第二或第三等没有任何反应 – Tomazi

0

JBentley回答了你设定的问题。在他发布的While语句中,应该添加一个条件,使其内部的代码可以运行。我想你想输入:

while (left_jab_count < NUMBER) 

确保有一个真实的条件,以便循环可以启动和运行if语句。