欢迎光临
我们一直在努力

分⽀和循环:C语言的脊柱

序言

在C语言中,分支(条件判断)和循环(重复执行)是程序逻辑的核心,二者共同构成了代码的“脊柱”,决定了程序的执行流程。我们可以使⽤ if switch 实现分⽀结构,使⽤ for while do while 实现循环结构。

1.if语句

if 语句的语法形式如下:

if ( 表达式 )
语句

表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏

在C语⾔中,0为假,⾮0表⽰真,也就是表达式的结果如果是0,则语句不执⾏,表达式的结果如果不是0,则语句执⾏。

例⼦:输⼊⼀个整数,判断是否为奇数

#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if(num % 2 == 1)
printf("%d 是奇数\\n", num);
return 0;
}

1.1else

如果⼀个数不是奇数,那就是偶数了,如果任意⼀个整数,我们要清楚的判断是奇数还是偶数怎么表⽰呢? 这⾥就需要 if…else…
语句了,语法形式如下:

if ( 表达式 )
语句1
else
语句2

例⼦:输⼊⼀个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印数偶数

#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if(num % 2 == 1)
printf("%d 是奇数\\n", num);
else
printf("%d 是偶数\\n", num);
return 0;
}

1.2嵌套if


if else
语句中,
else
可以与另⼀个
if
语句连⽤,构成多重判断。

⽐如:要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数。请看如下代码:

#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if(num == 0)
printf("输⼊的数字是0\\n");
else if(num > 0) //这⾥的if 相当于嵌套在els语句中,形成了嵌套结构
printf("输⼊的数字是正数\\n");
else
printf("输⼊的数字是负数\\n");

return 0;
}

如果有多个
if

else
,可以记住这样⼀条规则,
else
总是跟最接近的
if
匹配。

2.关系操作符

1.
>
⼤于运算符

2.
>=
⼤于等于运算符

3.<= ⼩于等于运算符

4.== 相等运算符

5.!= 不相等运算符

注意:相等运算符 == 与赋值运算符 = 是两个不⼀样的运算符,不要混淆。有时候,可能会不⼩⼼写出下⾯的代码,它可以运⾏,但很容易出现意料之外的结果。

3.条件运算符

条件操作符也叫三⽬操作符,需要接受三个操作数的,形式如下:

1 exp1 ? exp2 : exp3

条件操作符的计算逻辑是:如果
exp1
为真, 取
exp2 计算
,计算的结果是整个表达式的结果;如果 exp1 为假, 取
exp3
计算,计算的结果是整个表达式的结果。

#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
if (a > 5)
b = 3;
else
b = -3;
printf("%d\\n", b);
return 0;
}
改造后:
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
scanf("%d", &a);
b = a>5 ? 3:-3;
printf("%d\\n", b);
return 0;
}

4.逻辑操作符:&& , || , !

1.||:或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)

2.&& :与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)

3.! :逻辑取反运算符(改变单个表达式的真假)

如果 flag 为真, !flag 就是假,如果 flag 为假, !flag 就是真           

5. switch 语句 

除了
if
语句外,C语⾔还提供了
switch
语句来实现分⽀结构。

switch
语句是⼀种特殊形式的
if…else
结构,⽤于判断条件有多个结果的情况。它把多重


else if
改成更易⽤、可读性更好的形式。

switch (expression) {
case value1: statement
case value2: statement
default: statement
}

上⾯代码中,根据表达式
expression (必须为整型)
不同的值,执⾏相应的
case 分⽀,case
后的值,必须是整形常量表达式。如果找不到对应的值,就执⾏ default 分⽀。

case 和后边的数字之间必须有空格

每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句,否则将继续执行下面的case

5.1switch语句中的default

在使⽤
switch
语句的时候,我们经常可能遇到⼀种情况,⽐如
switch
后的表达式中的值⽆法匹

配代码中的
case
语句的时候,这时候要不就不做处理,要不就得在
switch
语句中加⼊default ⼦句,加了遇到没有的case就会执行default

#include <stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);

switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("⼯作⽇\\n");
break;
case 6:
case 7:
printf("休息⽇\\n");
break;
default:
printf("输⼊错误\\n");
break;
}
return 0;
}


switch
语句中
case
语句和
default
语句是没有顺序要求的,只要你的顺序是满⾜实际需求的就可以

6.while循环

while( )如果while括号中的为真将进入循环,循环一次后将重新进行一次判断,如果还为真将继续执行,一直为真会一直循环,陷入死循环,为假将不执行循环,直接跳过

#include <stdio.h>
int main()
{
while(1)
printf("hehe\\n"); //while后边的条件满⾜,死循环的打印hehe
return 0;
}

7.for循环

for
循环是三种循环中使⽤最多的,
for
循环的语法形式如下:

for(表达式1; 表达式2; 表达式3)

表达式1 ⽤于循环变量的初始化

表达式2 ⽤于循环结束条件的判断

表达式3 ⽤于循环变量的调整

#include <stdio.h>

int main()
{
int i = 0;
for(i=1; i<=10; i++)
{
printf("%d ", i);
}

return 0;
}

8.do-while 循环

在循环语句中
do while
语句的使⽤最少,它的语法如下:

do
语句;
while(表达式);

while

for
这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳

出循环;


do while
循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏
while
后的判断表达式,表

达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。

8.1continue

continue是继续的意思,在循环中的作⽤就是跳过本次循环中 continue 后边的代码,继续进⾏下⼀次循环的判断

#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
continue;
//当i等于5后,就执⾏continue,直接跳过continue的代码,去循环的判断的地⽅
//因为这⾥跳过了i = i+1,所以i⼀直为5,程序陷⼊和死循环
printf("%d ", i);
i = i+1;
}
return 0;
}

9.goto语句

C语⾔提供了⼀种⾮常特别的语法,就是
goto
语句和跳转标号,
goto
语句可以实现在同⼀个函数

内跳转到设置好的标号处。

#include <stdio.h>
int main()
{
printf("hehe\\n");
goto next:
printf("haha\\n");

next:
printf("跳过了haha的打印\\n");
return 0;
}

赞(0)
未经允许不得转载:171主机测评 » 分⽀和循环:C语言的脊柱
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址