分支和循环语句

1. if语句

1.1 语法格式

if(条件表达式)
{
    语句;
    ...
}

if语句通常与else配合使用:

if(条件表达式)
{
    语句1;
    ...
}
else
{
    语句2;
    ...
}

1.2 执行过程

第一种情况:

  1. 条件表达式结果为真(即非零 ⟹ \Longrightarrow 执行if代码块内的语句。
  2. 条件表达式结果为假(即 ⟹ \Longrightarrow 不执行if代码块内的语句,程序流转到if语句后面。

示例:

#include <stdio.h>
int main(void)
{
    //声明变量并初始化
    int a = 1;
    int b = 2;
    if(a == 1)
        print("%d",a);
    if(b == 1)
        printf("%d",b);
    return 0;
}

这段代码中,我们声明了变量a、b,并且初始化a为1、b为2,在执行if(1)时,因为a=1,所以a==1判断成立,执行printf()函数,屏幕上打印出数字1;但是在执行if(2)时,由于b=2,所以b==1不成立,不执行printf()函数,程序流转到return,程序结束。最终屏幕上只打印出数字1


第二种情况:

  1. 条件表达式结果为真 ⟹ \Longrightarrow 执行语句1;
  2. 条件表达式结果为假 ⟹ \Longrightarrow 执行语句2;

示例:

#include <stdio.h>
int main(void)
{
    int a = 1;
    if(a == 1)
        printf("哈哈");
    else
        printf("呵呵");
    if(a != 1)
        printf("哈哈哈");
    else
        printf("呵呵呵");
    return 0;
}

这段代码最终会在屏幕中打印出“哈哈呵呵呵”。

1.3 注意事项

  1. if和else默认都只控制一条语句,所以需要if或者else控制多条语句时,需要用{}包裹代码块。

示例:

#include <stdio.h>
int main(void)
{
	int a = 1;
	if (a == 1)
		printf("haha");
		printf("hehe");
	else
		printf("hellow");
		printf("hi");
	return 0;
}

在这段代码中,由于我没有使用{}包裹代码块,在编译时编译器会报错。

正确的写法如下:

#include <stdio.h>
int main(void)
{
	int a = 1;
	if (a == 1)
    {
        printf("haha");
		printf("hehe");
    }
	else
    {
        printf("hellow");
		printf("hi");
    }
	return 0;
}

这时就能成功在屏幕上打印出“hahahehe”。

  1. 在if-else语句中,else可以与另外一个if语句连用,构成多重判断。

示例:

#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;
}
  1. 如果有多个if与else,记住这样一条规则:else总是跟最接近的if匹配。
#include <stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	if(a == 1)
		if(b == 2)
			printf("hehe\n");
	else
		printf("haha\n");
	return 0;
}

在这个示例中,else与第二个if匹配。

2. 关系运算符

C 语⾔⽤于⽐较的表达式,称为 “关系表达式”(relational expression),⾥⾯使⽤的运算符就称为“关系运算符”(relational operator),主要有下⾯6个。

>大于运算符
<小于运算符
<=小于或等于运算符
>=大于或等于运算符
==相等运算符
!=不相等运算符

关系表达式通常返回01,表示真假。其中1表示真,0表示假。

但是在C语言中,0表示假,所有的非零值表示真。

注意:

===是两个不一样的运算符,=是赋值运算符,==是关系运算符。

3. 逻辑运算符

!逻辑取反运算符
&&与运算符
\\或运算符

注:这里的\\实际上应该是||,只是由于我使用的是md编辑器,||在表格中显示不出来。

示例:

#define _CRT_SECURE_NO_WARNINGS/* 这是一个预处理指令,用于告诉编译器忽略与安全警告相关的编译错误或警告信息。*/
#include <stdio.h>
int main()
{
    //声明变量并初始化
    int year = 1;
    //输入年份
    scanf("%d",&year);
    //判断时候是闰年
    if((year % 4 == 0 && year %100 !=0) || (year %400 ==0))
        printf("%d年是闰年\n", year);
    else
        printf("%d不是闰年\n", year);
}

4. switch语句

4.1 语法格式

switch (expression)
{
    case value1:
        {
            statement1;
            ...
        }
    case value2:
        {
            statement2;
            ...
        }
     ...
     defaule:
        {
            statement;
            ...
        }
}

在这段代码中,根据表达式expression不同的值,执行相应的case分支。如果找不到对应的值,就执行idefault分支。

4.2 注意事项

  • switch后的expression必须是整型表达式
  • case后的值,必须是整型常量表达式

5.while循环

5.1 语法格式

while(expression)
{
    statement;
    ...
}

5.2 执行过程

  1. 判断表达式结果为假(即零) ⟹ \Longrightarrow 循环结束
  2. 判断表达式结果为真(即非零) ⟹ \Longrightarrow 执行循环体 ⟹ \Longrightarrow 继续判断 ⟹ \Longrightarrow

5.3 if语句与while语句

相似性:结构相似

if(expression)
{
    statement;
    ...
}



while(expression)
{
    statement;
    ...
}

区别:

示例:

#include <stdio.h>
int main(void)
{
    if(1)
        printf("hehe");
    return 0;
}
#include <stdio.h>
int main(void)
{
    while(1)
        printf("haha");
    return 0;
}

第一段代码只会在屏幕上打印出“hehe”,但是第二段代码会在屏幕上打印出无数个“haha”。

这就是if语句和while语句的区别,while语句可以实现循环效果

6. for循环

6. 1 语法格式

for(expression1;expression2;expression3)
{
	statement;
    ...
}

解释:

expression1用于循环变量的初始化
expression2用于循环结束条件的判断
expression3用于循环变量的调整

6.2 执行过程

expression1:初始化 ⟹ \Longrightarrow expression2:判断 ⟹ \Longrightarrow

  1. 判断为假 ⟹ \Longrightarrow 结束循环
  2. 判断为真 ⟹ \Longrightarrow 执行循环体 ⟹ \Longrightarrow expression2:判断 ⟹ \Longrightarrow

7. do-while循环

7.1 语法格式

do
{
    statement;
    ...
}
while(expression);

7.2 执行过程

执行statement ⟹ \Longrightarrow 执行expression ⟹ \Longrightarrow

  • 判断为真 ⟹ \Longrightarrow 继续循环 ⟹ \Longrightarrow
  • 判断为假 ⟹ \Longrightarrow 循环结束

8. break和continue语句

  • break的作用是用于永久终止循环,只要break被执行,直接就会跳出循环,继续往后执行。
  • continue的作用是跳过本次循环continue 后面的代码,在for循环和while循环中有所差异。

9. goto语句

goto语句可以实现在同一个函数内跳转到设置好的标号处。

语法格式:

goto label;

...

label: 
statement1;
statement2;

示例:

#include <stdio.h>
int main()
{
    printf("hehe\n");
 	goto next:
	printf("haha\n");
 
next:
 	printf("跳过了haha的打印\n"); 
 	return 0;
}
  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

略无慕艳意

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值