分支循环
C语言中,分支逻辑可以用if和switch语句表达,循环逻辑则可以使用for、while和do...while表达。除此之外,goto语句则可以灵活的跳转到任意代码位置。
if语句
关系运算符
关系运算符用于判断关系,返回结果位0或1,表示假和真。运算符的两个操作数应该是相同类型或可以进行隐式转换的,两个字符串不能进行比较。
==等于!=不等于>大于<小于>=大于或等于<=小于或等于
分支逻辑
下面是一个分支逻辑代码示例。
#include <stdio.h>
int main(void)
{
int i = 0;
if(i == 0)
{
printf("i == 0\n");
}
else
{
printf("i != 0\n");
}
return 0;
}
if...else...可以嵌套,可以写成if...else if...else if...else...组成复杂的逻辑。
与或非
C语言中,可以用“与或非”连接布尔值的表达式,返回最终的逻辑运算结果。
&&逻辑与||逻辑或!逻辑非
switch语句
switch语句例子如下。
#include <stdio.h>
int main(void)
{
int i;
scanf("%d", &i);
switch (i)
{
case 1:
printf("Running mode 1\n");
break;
case 2:
printf("Running mode 2\n");
break;
default:
printf("Unkown mode\n");
}
return 0;
}
switch语句和if...else if...else if...else...等价。但要注意每个case都包含break,如果没有break代码流程将进入下一个case。
while语句
while循环例子如下。
int factorial(int n)
{
int result = 1;
while (n > 0)
{
result = result * n;
n = n - 1;
}
return result;
}
while语句括号中的表达式为非0时,循环体执行;为0时,循环终止。
do...while...语句
do...while...语句和while等价,区别是先执行,后判断条件,循环逻辑中有些时候使用do...while...代码更简洁。
for语句
for循环例子如下。
int factorial(int n)
{
int result = 1;
for(int i = 1; i <= n; i++)
result = result * i;
return result;
}
for循环中可以使用一个变量,每次循环自增、自减或是进行一些其它运算,直到不满足条件为止。
break和continue
break和continue用于跳出循环语句的循环体。break直接跳出一层循环,continue则是结束本次循环,继续执行下一次循环。
goto语句
goto语句一般用于跳出多层循环。虽然goto能随意跳转代码,但是一般不会这样使用,因为随意跳转会降低代码的可维护性和可读性。goto语句跳出多层循环例子如下。
#include <stdio.h>
#include <string.h>
int main(void)
{
int mat[10][10];
memset(mat, 0, sizeof(mat));
mat[2][3] = 3;
int i = 0;
int j = 0;
for (i = 0; i < 10; i++)
{
for (j = 0; j < 10; j++)
{
if (mat[i][j] != 0)
{
goto found_num;
}
}
}
found_num:
printf("%d %d", i, j);
return 0;
}
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。