栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言之初学者也能玩明白的分支与循环

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言之初学者也能玩明白的分支与循环

 作者:你我皆为凡人

 博客主页:你我皆为凡人的博客

 名言警句:时间不会为任何人停留,而事物与人,无时不刻也在变化着。每一个人,也都在不停向前!

 觉得博主文章写的不错的话,希望大家三连(✌关注,✌点赞,✌评论),多多支持一下!!

文章目录

目录

文章目录

前言

一:分支语句(选择结构)

          if语句

                第一种if单分支表达:

                 第二种if,else双分支语句表达:

                  第三种if,if  else ,else多分支语句表达:​

          Switch语句(应用于多分支)

              ✨Switch基本表达形式

                ✨如果有时候需求改变一下呢?还可以这样

                ✨1-7可以满足,但是如果输入一个没有的值呢?

                ✨以上的default是什么呢?

二:循环语句

          while

                while基本语法

                  当while循环中与break与continue碰撞出来的火花

          for

                 for循环语法:

                  break与continue在for循环中碰撞出来的火花:

                 一些for循环的变种:

                 一道笔试题:

          do while

                 do语句语法:

                 do while循环中与break与continue碰撞出来的花火:

 三:练习题

                 计算 n的阶乘。

                 计算 1!+2!+3!+……+10!

                 在一个有序数组中查找具体的某个数字n。(讲解二分查找)

                 编写代码,演示多个字符从两端移动,向中间汇聚。

                 编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登录成,如果三次均输入错误,则退出程序。

   四:猜数字小游戏的实现以及goto语句的应用(关机小程序)

         goto语句的应用(尽量少的去使用)

 ✨goto语句适用场景(一个关机小程序)

总结



前言

本文讲解了C语言中关于分支语句中的if,Switch语句详细介绍,循环语句中的while循环,for循环,do while循环,以及一些练习题,还有最后根据分支与循环实现的猜数字小游戏以及goto语句实现的关机小程序,可以看完很好的去巩固本篇所学习的知识


提示:以下是本篇文章正文内容,下面案例可供参考

一:分支语句(选择结构)

 (分支语句也叫条件判断语句:if语句与Switch语句)

          if语句

                第一种if单分支表达:

                 第二种if,else双分支语句表达:

                  第三种if,if  else ,else多分支语句表达:

          Switch语句(应用于多分支)

              ✨Switch基本表达形式
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)//必须是整型表达式
	{
	case 1://必须整型常量表达式
		printf("星期一n");
		break;//可以跳出循环
	case 2:
		printf("星期二n");
		break;
	case 3:
		printf("星期三n");
		break;
	case 4:
		printf("星期四n");
		break;
	case 5:
		printf("星期五n");
		break;
	case 6:
		printf("星期六n");
		break;
	case 7:
		printf("星期日n");
		break;

	}
	return 0;
}

                ✨如果有时候需求改变一下呢?还可以这样
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;
	}
	return 0;
}

                ✨1-7可以满足,但是如果输入一个没有的值呢?
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://不匹配所有case标签的值时,走default
		printf("选择错误n");
	}
	return 0;
}

                ✨以上的default是什么呢?
如上图,当所有的case条件都不满足时,你输入了一个不是case里的数字,就会执行default 在语句列表中增加一条default子句,把下面的标签 default: 写在任何一个 case 标签可以出现的位置。 当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。 所以,每个switch语句中只能出现一条default子句。 但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句。

二:循环语句

          while

                while基本语法

                  当while循环中与break与continue碰撞出来的火花

          for

                 for循环语法:
for(表达式1; 表达式2; 表达式3)
循环语句;
表达式1 表达式1为初始化部分,用于初始化循环变量的。 表达式2 表达式2为条件判断部分,用于判断循环时候终止。 表达式3 表达式3为调整部分,用于循环条件的调整。
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)//初始化,判断终止条件,调整部分,让每次都变化
	{
		printf("%d ", i);
	}
	return 0;
}

                  break与continue在for循环中碰撞出来的火花:

                 一些for循环的变种:

                 一道笔试题:
//请问循环要循环多少次?
#include 
int main()
{
 int i = 0;
 int k = 0;
 for(i =0,k=0; k=0; i++,k++)//注意,k=0是赋值,根本不会进去,所以循环0次
        k++;
 return 0; }

          do while

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

 

                 do while循环中与break与continue碰撞出来的花火:

 三:练习题

                 计算 n的阶乘。
//计算 n的阶乘
//1*2*3*...*n
int main()
{
	int i = 1;
	int n = 0;
	int ret = 1;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		ret *= i;
	}
	printf("%d", ret);
    return 0;
}

                 计算 1!+2!+3!+……+10!
//计算1!+2!+。。。10!
int main()
{
	int i = 1;
	int ret = 1;
	int sum = 0;
	for (i = 1; i <= 10; i++)
	{
		ret *= i;
		sum += ret;
	}
	printf("%d", sum);
	return 0;
}

                 在一个有序数组中查找具体的某个数字n。(讲解二分查找)
int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int k = 7;
	//在一个数组中找k
	int i = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (i = 0; i  
#include
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int i = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);
	int left = 0; //左边
	int right = sz - 1;//右边
	int k = 7;//要找的值
	while (left<=right)
	{
	//int mid = (right + left) / 2;
      int mid = left+(right-lift)/2;
			if (arr[mid] < k)
			{
				left = mid + 1;
			}
			else if (arr[mid] > k)
			{
				right = mid - 1;
			}
			else
			{
				printf("找到了,下标是%d", mid);
				break;
			}
	}
	if (left > right)
	{
		printf("找不到");
	}
	return 0;
}

                 编写代码,演示多个字符从两端移动,向中间汇聚。
#include
#include
int main()
{
	char arr1[] = "hello world!!!!";
	char arr2[] = "###############";
	int left = 0;
	int right = strlen(arr1) - 1;
	while (left<=right)
	{
		arr2[left] = arr1[left];
		arr2[right] = arr1[right];
		printf("%sn", arr2);
		Sleep(1000);//1秒
		system("cls");//可以清空屏幕,系统命令
		left++;
		right--;
	}
	printf("%s", arr2);
	return 0;
}

                 编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登录成,如果三次均输入错误,则退出程序。
#include
#include
int main()
{
	char password[20] = { 0 };
	int i = 0;
	for (i = 0; i < 3; i++)
	{
		printf("请输入密码:");
		scanf("%s", password);
		if (strcmp(password, "abcdef") == 0)
		{
			printf("密码正确n");
			break;
		}
		else
		{
			printf("密码错误n");
		}
	}
	if (i == 3)
	{
		printf("三次密码都错误,退出程序");
	}
	return 0;
}

   四:猜数字小游戏的实现以及goto语句的应用(关机小程序)
//猜数字游戏实现
void memo()
{
	printf("###########################n"); 
	printf("######### 1 play   ########n");
	printf("######### 0 exit   ########n");
	printf("###########################n");


}
void play()
{
	//1,生成一个1-100的随机数
	int ret = rand() % 100 + 1;
	int guess = 0;
	//2,猜数字
	//3,判断猜大了还是猜小了
	while (1)
	{
		printf("请输入要猜的数字:");
		scanf("%d", &guess);
		if (guess < ret)
		{
			printf("猜小了n");
		}
		else if (guess > ret)
		{
			printf("猜大了n");
		}
		else
		{
			printf("恭喜你,猜对了n");
			break;
		}
	}
}
int main()
{
	int input = 0;
	srand((unsigned)time(NULL));
	do
	{
		memo();
		printf("请确认n");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			printf("玩游戏n");
			play();
			break;
		case 0:
			printf("退出游戏n");
			break;
		default:
			printf("选择错误,重新输入n");
			break;
		}
	} while (input);
	return 0;
}

         goto语句的应用(尽量少的去使用)

C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。

从理论上 goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。

但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过

程。

例如:一次跳出两层或多层循环。

多层循环这种情况使用break是达不到目的的。它只能从最内层循环退出到上一层的循环。所以这个时候使用goto语句可以返回到任何你想让它跳出去的地方

注意:只能在同一个函数内部使用,不可以跨函数跳转

 ✨goto语句适用场景(一个关机小程序)
int main()
{
	char input[20] = { 0 };
	system("shutdown -s -t 60");
again:
	printf("请注意,你的电脑在60秒内即将关机,请输入:我是猪,就取消关机n");
	scanf("%s", &input);
	if (strcmp(input, "我是猪") == 0)
	{
		system("shutdown -a");
	}
	else
	{
		goto again;
	}
	return 0;
}

总结

本篇文章具体讲解了关于C语言中分支语句与循环语句有哪些,基础语句是什么,让大家可以根据图片来看清楚到底是什么作用,最后也给大家准备了几道关于分支与循环的一些编程题,让大家可以看完练习一下巩固知识,只针对初学者,一些大佬可以当着复习了,最后感谢大家观看凡人的文章,如果觉得凡人讲的还不错,希望多多支持,感谢观看!!!

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/832403.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号