2013-10-17 82 views
-2
#include<iostream.h> 
#include<conio.h> 

void main() 
{ 
    clrscr(); 
    int a,b; 
    a=0; 
    cin>>b; 
    do 
    { 
    if (b==1) 
     cout<<"case1a " ; 
    else if (b==2) 
     cout<<"case 1b "; 
     a=a+1; 
    } 
    while(a=0); 

    cout<<"Interval"; 

    do 
    { 
    if (b==1) 
     cout<<"case 2a"; 
    else if (b==2) 
     cout<<"case 2b"; 
     a=a-1; 
    } 
    while(a=1); 

    getch(); 
} 

上面的代码建立无限循环。 预期的输出是“case1a case2a case3a case4a”无限次,但该程序只打印“case1a”无限次Inifinite循环不打印的所有值

那么,如何纠正这一点,让我期望的输出?

PS我用移+破暂停输出到看到最新正在打印的屏幕

+2

正确缩进您的代码,以使其可读。 – Michael

+1

@Chemistpp - 有一个'使用命名空间标准',它只是从最上面的屏幕上脱离下来:) –

+0

@Chemistpp他正在使用一个旧的编译器,它不使用'std ::' –

回答

3
while(a=0)

上应该是while(a==0)

同样地,对于你的第二while

您正在将赋值运算符=与等号运算符==混淆。

+0

好吧我只是改变=与==现在问题是,它不再是一个无限循环......在哪里,因为我想要一个无限循环,这就是为什么我在第一个循环中做了a = a + 1和a = a-1在第二个循环,使其成为一个无限循环.. – user2891112

+2

我努力了解你在做什么...我知道它涉及到一个无限循环,但除此之外... –

+0

@ user2891112为什么会造成一个无限循环?第一个循环完成后,代码中没有任何内容会回到它。第二个循环没有设置为永久循环。 – stonemetal

0

while语句后无分号(;)。

+0

这将是一个更清晰的答案,如果您可以包含一些代码并在其中显示如何修复它。 – ljgw