分支与循环

概览

*if语句

*关系操作符,逻辑操作符

*switch语句

*while循环

*for 循环

*do while循环

*break与continue语句

前言:
C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构。
我们使用if语句,switch实现分支结构,使用for,while,do while实现循环结构。

正文

if语句

*基本结构:
if()
()内为真则语句执行,非真则不执行。C语言中0为假,非0表示真。

*else
用 if … else 语句来决定程序如何执行;
如以下用以判断一个数是不是三的倍数的代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int a = 0;
	scanf ("%d", &a);
	if (a % 3 == 0)
	{
		printf("%d是3的倍数",a);
	}
	else
		printf("%d不是3的倍数",a);
	return 0;
}

*嵌套if
通常用于多重判断,如在判断一个数是否是3的倍数的,判断它是正数还是负数
在遇到多重if与else时,注意 if 总与最近的 else 匹配。如以下例子

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;
}

上述代码的输出结果是什么?是什么都不输出!
注意上文,if总与离得最近的else匹配
在这里插入图片描述

关系操作符与逻辑操作符

关系操作符
1.> 大于运算符
2< 小于运算符
3.<= 小于等于运算符
4.> 大于等于运算符
5.相等运算符
6.!=不等运算符
注意:
1.不可把 *
写作 =
2.多个关系操作符不宜连用,如:
i<j<k
上述关系式不会报错,但实际执行顺序确是:
(i<j)<k
i与j进行比较后返回0或1,所以最终会是0或1与k的比较。如果想达到目的,应采用以下写法:
i<j && j<k

*逻辑操作符
1.!取反操作符(改变表达式真假)
2.&&与运算符(两侧都为真才是真,否则为假)
3. || 或运算符(两侧至少有一个为真就是真)

*短路
C语言逻辑运算符有一个特点:它总先对左侧表达式求值,再对右边表达式求值,这个顺序是确定的。如果左边表达式满足逻辑运算符的条件,就不再对右边表达式求值,这就是”短路“。
如下

if(a >= 3 && a<=5) 

若a不能左边满足a<=3的条件,那么代码运行到这里就不会再对右边进行判断
又如以下代码

if(a ==2 || a==1 || a ==4)

如果a=2,那么不用再判断a是否等于1或4。像这种仅仅根据左操作数的结果就能知道整个表达式的结果,不再对右操作数进⾏计算的运算称为短路求值

switch语句

switch用于判断条件有多种结果的情况
基本结构

switch...case ... :
statement
case ... :
statement
...
fefault:
statement

需注意:
1.switch后的”…"必须是整型表达式
2.case后的值必须是整型常量表达式
3.case和后边的数字之间要有空格
4.每一个case语句中的代码执行完成之后,需加上break才能跳出这个switch语句。如果一个case语句后面没有break,代码会继续向下执行直到遇到break语句或switch语句结束。至于break的使用与否看实际情况

*switch语句中的default
当switch语句中的所有case情况都不满足时,就会执行 default 语句
需注意:default在switch语句并无位置要求,不过通常将其放在最后处理。

while循环

while语句基本使用:

#include <stdio.h>
int main()
{
	int i = 0;
	while(i == ...)
	{
	printf("%d ",i);
	i++;
	}
return 0;
}

for循环

*for语句语法形式:
for(1;2;3)
1:循环变量的初始化
2:循环条件结束条件的判断
3:调整循环变量
初始化只会执行一次,接着便会执行循环结束条件的判断与变量调整,也就是说,整个循环中只有2、3部分及循环语句在循环

*基本使用:

#include<stdio.h>
int main()
{
int i =1;
	for(i =1; i <=10;i++)
  	{
  	printf("%d ",i);
  	}
return 0;
}

do while循环

基本使用:

#include <stdio.h>
int main()
{
 int i = 1;
 do
 {
 	printf("%d ", i);
 	i = i + 1;
 }
 while(i<=10);
 return 0;
}

对比while循环,do while循环相当于是在循环体执行一次之后再进行循环结束条件判断

break和continue

*break
break可永久终止循环,如以下代码:

#include<stdio.h>
int main()
{
int i = 1;
for(i = 1;i<=10;i++)
	{
	if(i == 5)
		{
		break;
		}
	printf("%d ",i);
	}
return 0;
}

运行会后输出:
在这里插入图片描述

这就是break的作用

*continue
将上述代码中的break换成continue再运行

#include<stdio.h>
int main()
{
int i = 1;
for(i = 1;i<=10;i++)
	{
	if(i == 5)
		{
		continue;
		}
	printf("%d ",i);
	}
return 0;
}

会得到:
在这里插入图片描述
因此continue可以在我们需要对满足某个条件且不想执行后续操作时使用

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值