2017-06-17 62 views
-2

这个C代码的输出是什么? //输出给出5个hi。我不明白它是如何5我认为输出可能8喜。所以我想要这个输出的解释。C中下列程序的输出是什么?

void main() 
{ 
    int i = 0, j = 0; 

    for (i = 0; i < 5; i++) 
    { 
     for (j = 0; j < 4; j++) 
     { 
      if (i > 1) 
       break; 
     } 
     printf("Hi\n"); 
     } 
    } 
+2

您是否尝试过在调试器步进通过我的价值在你的输出只有5嗨? – sbooth

+1

[如何调试小程序](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/) –

+0

也许你应该解释为什么你认为这应该产生8行而不是5行那么我们也许可以看到你误解代码的地方,并解释为什么这是错误的。 –

回答

1
for (j = 0;j < 4; j++) 
{ 
    if (i > 1) 
     break; 
} 

此for循环不执行任何本质。

1

内部for循环并没有真正做任何事情。真正发生的唯一情况是它检查if (i>1)并且它离开了内部循环。

所以执行返回到外循环,"hi"为每i

4

其实你正在设法解决这个循环

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

    printf("Hi\n"); 

} 

你的内循环有没有影响打印一次输出,因为没有输出语句那里

绝对T A break语句 看到

for (j = 0;j < 4; j++) 
{ 
    if (i > 1) 
     break; 
} 

这就是为什么你可以根据

编码快乐