C语言笔记:2.分支与循环语句


前言

提示:C语言笔记用作对自己学习的总结以及以后方便查阅遗忘知识。
以后也会查缺补漏。


什么是语句?

在C语言中由一个分号(;)隔开的就是一条语句。

1.分支语句

1.1、分支语句(选择结构)

格式:
(1)没有else部分:

	if(表达式)  语句1;

(2)有else部分:

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

(3)else嵌套多个if:

if(表达式1)
	语句1;
else if(表达式2)
	语句2;
else if(表达式3)
	语句3;
else
	语句4;

表达式结果为真,则语句执行。
(0表示假,非0表示真)

注:通常情况下else是与距离自身最近的else匹配。

if 1
if 2
else
此时else是与if2匹配

如果是

if 1
{
if 2
}
else
此时else是与if2匹配

例子

if(condition)
{
return x;
}
returny;
条件成立则返回x,否则返回y

1.2、多分支语句(switch语句)

格式:

switch(整型表达式) 
 { 	 
 	case 表达式结果1: 		
 		语句1;
 		break;
 	case 表达式结果2: 		
 		语句2;
 		break;
 	case 表达式结果3: 		
 		语句3;
 		break;
 	case 表达式结果4: 		
 		语句4;
 		break;
 	default:
 		语句5;
 		break;
 	 }

注意:
(1).switch()中()里面的表达式必须是整形的,不能为小数或者其他类型的。
(2).break是指跳出{}包含的语句,且break以后的语句不会执行。
比如

switch()
{
	case 1case 2break}
此时如果从case 1开始执行的话,同时会执行case 2,
然后才会执行break,跳出这个switch语句。

(3). default表示除了case语句中有的选项之外的所有选项。
(4).case和default是没有顺序之分的,也可以放在上面,
建议放在最下面。

2、循环语句

  1. while语句
  2. for语句
  3. do while语句

2.1 while语句

格式:

while(表达式) 
 { 	  		
 语句;
 }

continue作用:
比如while语句里面,在continue后面的语句不会执行,而是直接跳转到while语句的判断部分,进行下一次循环的入口判断.
注意:在while里面使用continue可能会导致死循环

2.2 for语句

格式:

for(表达式1;表达式2;表达式3) 
 { 	 	
 	循环语句;
 }

表达式1:初始化部分
表达式2:条件判断部分
表达式3:调整部分

for循环建议:

  1. 不可以在for循环体内修改循环变量,防止for循环失去控制
  2. 建议for语句的循环控制变量的取值采用前闭后开区间的写法,例如for(i=0;i<10;)。
    (建议但不是必须)

for( ; ; )
在这个for语句中,不加任何表达式,执行的是一个死循环
for(k=0;k=0;k++)
当表达式2为0时,即判断为假,直接结束,循环0次

2.3 do while语句

格式:

do
	循环语句;
while(表达式);

while表达式为真就循环,为假就结束循环了。

2.4 goto语句

是一种可以随意跳转的语句,类似于瞬移
不能够随意使用,以免破坏代码原本的逻辑性
常用用法:
终止程序在某些深度嵌套的结构的处理过程,比如一次跳出两层或者多层循环。
例子:

for()
{
	for()
	{
		for()
		{
			if(disaster)
				goto error;
		}
	}
}
error:
	if(disaster)
	......
	意思是在多个for循环中如果有一个错误需要解决,
	连续用break比较麻烦,可以直接用goto语句出来
	处理这个问题。

实际应用

1.折半查找算法(二分查找算法)

说明:找中间元素,去掉一半
需求:在1~9中找到7,若找到返回下标,否则返回-1

int binary_search(int* arr, int k)
{
	

	int sz = sizeof(arr) / sizeof(arr[0]);
	int i=0;
	int right = 0;
	int left = sz - 1;

	while (right >= left)
	{
	
		i=(right + left) / 2;

		if (k == arr[i])
		{
			return i;
			break;
		}
		if (k > arr[i])
			right++;
		if (k < arr[i])
			left--;
	}
	return -1;
}
int main()
{
	
	int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
	int k = 0;
	int ret;

	scanf("%d", &k);
	ret = binary_search(arr, k);
	printf("%d", ret);
	return 0;
}

2.辗转相除法

说明:
求m与n的最大公约数
若m>n
m%n=r -->r为m除以n的模
(1)m n r
(1)n r m%n
反复执行(2)直到r为0,则此时n就是m和n的最大公约数

int main()
{
	int m = 0;
	int n = 0;
	int r = 0;
	scanf("%d%d", &m, &n);
	while (m%n)
	{
		r = m%n;
		m = n;
		n = r;
	}
	printf("%d\n", n);
	return 0;
}

3.计算闰年

闰年:
(1)能被4整除不能被100整除的年份
(2)能被400整除的年份
需求:找出1900—2020年之间的闰年,并计算一共有多少个闰年

#include<stdio.h>
int main()
{
	int count = 0;
	int n = 0;
	for (n = 1900; n <= 2020; n++)
	{
		if ((n % 4 == 0 && n % 100 != 0) || n % 400 == 0)
			printf("%d\n", n);
		count++;
	}
	printf("一共有%d个闰年\n", count);
	return 0;
}

4.素数的判断方法

素数:只能被1和自身整除的自然数。(1不是素数)
需求:找出1—100里面的素数

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

5.九九乘法表

1 * 1=1
1 * 2=2 2 * 2=4
1 * 3=3 2 * 3=6 3 * 3=9

#include<stdio.h>
int main()
{

int i = 0;
int n = 0;
int sum = 0;
while (n<9)
{
	n++;
	for (i = 1; i <= n; i++)
	{
		sum = i*n;
		printf("%d*%d=%-2d", i, n, sum);
		printf(" ");

	}
	printf("\n");

}
return 0;
}

注:%2d表示两位右对齐
%-2d表示两位左对齐

额外知识

(1).getchar() 表示输入
puchar() 表示输出

例如:

int ch=getchar();
putchar(ch);
printf("%c\n",ch);
return 0;

(2).在scanf("%d",&x)里面如果输入1234 ABCD的话,输出结果为1234,不会有ABCD,即scanf只会读取空格前面的值。

(3).关机程序
在Windows里面的关机命令为shutdown - s -t 60
意思是60s后关机
shutdown -a 意思是取消关机
在C语言里面要想执行windows命令,需要用到system()函数,该函数要引用库函数stlib.h
比较两个字符串不能用“==”,要用strcmp()函数,该函数要引用库函数string.h

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、资源项目源码均已通过严格测试验证,保证能够正常运行; 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文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值