if 语句
if(a%2 == 0)
{
printf("a是偶数\n");
}
if-else 语句
if(a%2 == 0)
{
printf("a是偶数\n");
}
else
{
printf("a是奇数\n");
}
switch (n)
{
case 1:
printf("one\n");
break;
case 2:
printf("two\n");
break;
case 3:
printf("three\n");
break;
default:
printf("其他数字\n");
}
#include
int main()
{
int i = 1, sum = 0;
while (i <= 100) // 步幅,循环跳出条件
{
sum += i;
i++;
}
printf("%d\n", sum);
return 0;
}
/*
1.程序运行到 while 时,因为 i=1,i<=100 成立,所以会执行循环体;执行结束后 i 的值变为 2,sum 的值变为 1。
2.接下来会继续判断 i<=100 是否成立,因为此时 i=2,i<=100 成立,所以继续执行循环体;
执行结束后 i 的值变为 3,sum 的值变为3。
3.重复执行步骤 2
4.当循环进行到第100次,i 的值变为 101,sum 的值变为 5050;
因为此时 i<=100 不再成立,所以就退出循环,不再执行循环体,转而执行while循环后面的代码
*/
#include
int main()
{
int i = 1, sum = 0;
do
{
sum += i;
i++;
} while (i <= 100); // 注意while(i<=100);最后的分号“;”,这个必须要
printf("%d\n", sum);
return 0;
}
for (表达式1; 表达式2; 表达式3)
{
语句块
}
#include
int main()
{
int i, sum = 0;
for (i = 1 /*语句①*/; i <= 100 /*语句②*/; i++ /*语句③*/)
{
sum += i;
}
printf("%d\n", sum);
return 0;
}
/*
1.先执行“表达式1”(i=1)
2.再执行“表达式2”(i<=100),如果它的值为真(非0),则执行循环体,否则结束循环。
3.执行完循环体后再执行“表达式3”(i++)
4.重复执行步骤2和3,直到“表达式2”的值为假,就结束循环
*/
int i = 1, sum = 0;
for (; i <= 100; i++)
{
sum += i;
}
// 将 i=1 移到了for循环的外面
for (i = 1;; i++)
sum = sum + i;
// 省略了“表达式2(循环条件)”,如果不做其它处理就会成为死循环
for (i = 1; i <= 100;)
{
sum = sum + i;
i++;
}
// 省略了“表达式3(自增或自减)”,就不会修改“表达式2(循环条件)”中的变量,这时可在循环体中加入修改变量的语句
#include
int main()
{
int i = 0, j = 0, sum = 0;
while (1) // 循环条件为死循环
{
sum += i;
i++;
if (i > 100)
break;
while (j < 50)
{
j++;
break;
}
}
printf("%d\n", sum); // 5050
printf("%d\n", i); // 101
printf("%d\n", j); // 50
return 0;
}
#include
int main()
{
char c = 0;
while (c != '\n') // 回车键结束循环
{
c = getchar();
if (c == '4' || c == '5') // 按下的是数字键4或5
{
continue; // 跳过当次循环,进入下次循环
}
putchar(c);
}
return 0;
}
==>
0123456789
01236789
/*
本例我们输入的是 0123456789,当读取到4或5时,if的条件 c=='4'||c=='5' 成立,
就执行 continue 语句,结束当前循环,直接进入下一次循环,也就是说 putchar(c); 不会被执行到。
而读取到其他数字时,if的条件不成立,continue 语句不会被执行到,
putchar(c);就会输出读取到的字符。
*/
#include
int main()
{
printf("%d\n", __LINE__); // 打印第4行
// 无条件跳转到label处
goto label;
printf("%d\n", __LINE__); // 打印第8行,此处被略过
label:
printf("%d\n", __LINE__); // 打印第10行
return 0;
}
==>
4
10
#include
int main()
{
int i, j;
for (i = 1; i <= 4; i++) // 外层for循环
{
for (j = 1; j <= 4; j++) // 内层for循环
{
printf("i=%d, j=%d\n", i, j);
}
printf("\n");
}
return 0;
}
// 本例是一个简单的for循环嵌套,外层循环和内层循环交叉执行,外层for每执行一次,内层for就要执行四次。