for循环傻傻分不清楚

 

 输出结果怎么跳过了1 2 3

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <strings.h>

int main(void){
	int i;

	for (i=0;i<=5; i++)
	{
	if (i == 3)
	 
	printf("I will run forever !%d\n",i);
        break;
	}
	printf("%d\n",i);
        return 0;

}

 

注意你那break语句,没有包裹在if语句里。

解决办法:

if (i == 3) {
	printf("I will run forever !%d\n", i);
	break;
}

 

int main(void){
    int i;
    for (i=0;i<=5; i++)
    {
        if (i == 3){
            printf("%d\n",i);
            break;
        }
        printf("I will run forever !%d\n",i);
    }
    return 0;
 
}

1. 猜你想要的应该是这个效果。

2. 最好养成if代码块使用花括号包起来的习惯。

3. 代码缩进也要养成习惯。

if后面不加大括号,里面的语句可以直接写在if后面,但是在里面执行一行的时候才可以,应该是if里面默认只有printf,下面的break在执行第一次的时候退处循环,这个时候i是0,后面的print输出0,才导致有些没输出出来