【入门级】C语言 知识点总结(二) 之分支和循环语句

Hello!小伙伴们,又见面啦,柚子今天给大家分享一下C语言三大结构中的选择结构和循环结构。

一、选择结构

大多数稍微复杂一点的程序都会使用选择结构,其功能是根据所指定的条件,决定从预设的操作中选择一条操作语句。

1、分支语句

        1.1 单分支结构语句(if)

if (表达式)                                                                            if (表达式)

语句;                                        or                                          {  语句;}   

【 注:这两者的区别就在于前者默认只会执行一条语句;后者则会执行“{ }”里所有的语句】

                                               表达式为真执行语句,否则不执行

        1.2  双分支结构语句(if--else)

if (表达式)                                                                              if (表达式)

语句1;                                                                                    {  语句1;}                               

else                                                                                           else 

语句2;                                              or                                    {  语句2;}

                                     在只有两种情况问题的选择中会用到双分支    

           1.2.1 分支语句的嵌套 (if-- else if -- else if --else)

if (表达式1)                                                                              if (表达式1)

                语句1;                                                                                    {  语句1;}         

else if ( 表达式2)                                                                        else if ( 表达式2)

                 语句2;                                                                                    {  语句2;}         

else                                                                                              else

                 语句3;                                        or                                          {  语句3;}   

                                遇见比较复杂的问题时,可以选择 if 语句进行嵌套 

        1.3  多分支结构语句( switch ) 

switch (表达式){

                                case 1  :   语句1  ; break;        ①(case常量表达式的值不能相同)

                                 case 2  :   语句2  ;  break;     ②(语句n选1,以break结尾,跳出结构)

                                   .......                                         ③(case与default子句的顺序可以打乱)

                                case n  :    语句n  ;     break; 

                                default   :    语句n+1  ; break;      ④(default子句可以省略)

                                                                                }

      1.4 条件表达式

表达式1 ?表达式2 :表达式3 ;

举例:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int a = 3;
	int b = 4;
	int max;
	/*if (a > b)
	{
		max = a;
	}
	else
	{
		max = b;
	}*/
	max = (a > b) ? a : b;
	printf("max = %d", max);
	return 0;
}

【注释掉的 if 语句可以用 [ max=(a>b)? a:b ; ] 这样一个条件表达式代替】

二、循环结构      (  for     while     do-whlie )

1. for 语句

for ( 循环变量赋初值;循环条件;循环变量增量){   语句 ;}

【注:虽然这三条语句可以省略,但是在没有完全掌握、运用到出神入化的地步还是不要省略啦】

2. while语句 

while ( 表达式 )        (当表达式为真(非零)时执行循环)

{

         语句;

  }

3. do--while语句

do

{       

        语句;

} while(表达式);        (一定要加“  ;”)

补充:while与do-while的区别:while只有在符合表达式的时候才会进入循环 ;而do--while是不管三七二十一先执行一次,所以,同等条件下,do-while会比while多执行一次。

下面用一段猜数字小游戏的代码来切身感受一下(if语句、switch语句、while循环和do-while循环吧!)

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void mnue()
{
	printf("**************************\n");
	printf("****** 猜数字小游戏 ******\n");
	printf("******* 1、PLAY **********\n");
	printf("******* 2、EXIT **********\n");
	printf("**************************\n");
}
void game()
{
	int sj = rand() % 100 + 1;//将随机数范围控制在100之内
	int guess = 0;
	int count = 5;
	while (count)
	{
		count--;
		printf("请输入您猜的数字:");
		scanf("%d", &guess);
		if (guess > sj)
		{
			printf("猜大了");
		}
		else if (guess < sj)
		{
			printf("猜小了");
		}
		else
		{
			printf("恭喜你猜对了!游戏结束");
			break;
		}
		if (count == 0)
		{
			printf("很遗憾,您没有猜出来!\n");
			printf("正确数字是:%d", sj);
		}
	}
}
int main()
{
	int input = 0 ;
	srand((unsigned int)time(NULL));//设置基准值

	do
	{
		mnue();
		printf("请输入您的选择:(1/0)%d\n", input);
		scanf("%d", &input);
	} while (input);

	switch (input)
	{
	case 1:
		game();
		break;
	case 0:
		printf("已退出游戏!");
		break;
	default:
		printf("请重新输入(1/0)");
		break;
	}

	return 0;
}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我为IT舔砖Java

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

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

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

打赏作者

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

抵扣说明:

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

余额充值