格式:
if (表达式)
{
	语句;
}
如果表达式成立,就执行大括号中的语句;否则跳过该 if 语句
#include <stdio.h>
int main()
{
	int num;
	printf("请输入一个数字:");
	scanf("%d", &num);
	if (num > 10)
	{
		printf("该数字大于 10\n");
	}
	return 0;
}
运行结果

12 符合 if 语句的条件,所以执行大括号中的语句

6 不符合 if 语句的条件,所以跳过该 if 语句
格式:
if (条件)
{
	语句 1;
}
else
{
	语句 2;
}
如果 if 语句的条件成立执行语句 1,否则执行语句 2
#include <stdio.h>
int main()
{
        int num;
        
        printf("请输入一个数字:");
        scanf("%d", &num);
        if (num > 10)
        {
                printf("%d 大于 10\n", num);
        }
        else
        {
                printf("%d 不大于 10\n", num);
        }
        return 0;
}
运行结果


格式:
if (条件 1)
{
        语句 1;
}
else if (条件 2)
{
        语句 2;
}
else if (条件 3)
{
        语句 3;
}
else
{
        语句 4;
}
如果条件 1 成立,则执行语句 1;如果条件 2 成立,则执行语句 2;如果条件 3 成立,则执行语句 3;条件 1,2,3 都不成立,执行语句 4
#include <stdio.h>
int main()
{
        int num;
        printf("请输入成绩:");
        scanf("%d", &num);
        if (num >= 85)
        {
                printf("你的成绩为A\n");
        }
        else if (num < 85 && num >= 75)
        {
                printf("你的成绩为B\n");
        }
        else if (num < 75 && num >= 60)
        {
                printf("你的成绩为C\n");
        }
        else
        {
                printf("你的成绩为D\n");
        }
        return 0;
}
运行结果

格式:
switch (表达式)
{
	case 常量表达式 1 : 语句 1;
	case 常量表达式 2 : 语句 2;
	case 常量表达式 3 : 语句 3;
	case 常量表达式 4 : 语句 4;
	default : 语句 5;
}
程序会执行表达式的值相对应的常量表达式的语句,如果全没有的话,会执行 default 的语句 5
#include <stdio.h>
int main()
{
        int a, b;
        printf("请输入两个数字 1 或 2:");
        scanf("%d %d", &a, &b);
        switch (a + b)
        {
                case 2: printf("结果为 2\n");
                case 3: printf("结果为 3\n");
                case 4: printf("结果为 4\n");
                default: printf("结果未知\n");
        }
        return 0;
}
运行结果



程序执行表达式的值相对应的常量表达式的语句之后,继续执行了之后的语句,这并不是我们想要的结果
这需要用到 break 来改进
#include <stdio.h>
int main()
{
        int a, b;
        printf("请输入两个数字 1 或 2:");
        scanf("%d %d", &a, &b);
        switch (a + b)
        {
                case 2: printf("结果为 2\n");break;
                case 3: printf("结果为 3\n");break;
                case 4: printf("结果为 4\n");break;
                default: printf("结果未知\n");break;
        }
        return 0;
}
运行结果




格式:
while (条件)
{
        语句;
}
如果条件成立,则会一直执行大括号中的语句
#include <stdio.h>
int main()
{
        int i = 0, count = 0;
        while (i <= 100)
        {
                count = count + i;
                i ++;
        }
        printf("结果为 %d \n", count);
        return 0;
}
运行结果

#include <stdio.h>
int main()
{
        int count = 0;
        printf("请输入一行英文字符:");
        while (getchar() != ‘\n‘)
        {
                count++;
        }
        printf("该行英文字符有 %d 个字符\n", count);
        return 0;
}
运行结果

格式:
do
{
    语句
}
while (条件);
执行大括号中的语句,直到条件不成立,while 语句后有个分号
大括号中的语句至少会被执行一次
#include <stdio.h>
int main()
{
        int i = 0, sum = 0;
        do
        {
                sum = sum + i;
                i ++;
        }
        while (i <= 100);
        printf("结果的值为 %d\n", sum);
        return 0;
}
运行结果

格式:
for (表达式 1; 表达式 2; 表达式 3)
{
        循环体
}
表达式 1 为循环初始化表达式,表达式 2 为循环条件表达式,表达式 3 为循环调整表达式
#include <stdio.h>
int main()
{
        int i;
        for (i = 0; i < 10; i++)
        {
                printf("Hello World!\n");
        }
        return 0;
}
运行结果

表达式 1、表达式 2、表达式 3 可以安装需要进行省略,但是分号不能省略
#include <stdio.h>
int main()
{
        int i = 0;
        for (;i < 10;)
        {
                printf("Hello World!\n");
                i++;
        }
        return 0;
}
运行结果

表达式 1、2、3 都省略的话:for (;;) 就和 while (1) 一样
表达式 1、3 可以是用逗号分隔的多个表达式
for (i = 0, j = 10; i < j; i++)
C99 运行在表达式 1 中定义变量,定义的变量的作用域只在循环中
for (int i = 0; i < 10; i++)
使用 for 循环嵌套实现九九乘法表
#include <stdio.h>
int main()
{
        int i, j;
        for (i = 1; i <=9; i++)
        {
                for (j = 1; j <= i; j++)
                {
                        printf("%d * %d = %-2d", i, j, i * j);
                }
                putchar(‘\n‘);
        }
        return 0;
}
运行结果

结束当前循环
#include <stdio.h>
int main()
{
        int i, j;
        for (i = 0; i < 10; i++)
        {
                for (j = 0; j < 10; j++)
                {
                        if (j == 3)
                        {
                                break;
                        }
                }
        }
        printf("i = %d, j = %d\n" ,i, j);
        return 0;
}
运行结果

当 j 等于 3 时,j 的循环就因为 break 结束了,只剩下 i 的循环
跳过当前循环,继续下一次循环
#include <stdio.h>
int main()
{
        int ch;
        printf("请输入一个字符串:");
        while ((ch = getchar()) != ‘\n‘)
        {
                if (ch == ‘w‘)
                {
                        continue;
                }
                putchar(ch);
        }
        putchar(‘\n‘);
        return 0;
}
运行结果

原文:https://www.cnblogs.com/sch01ar/p/9697142.html