分支语句和循环语句(分支语句)

目录

1.什么是语句

2.分支语句(选择结构)

2.1 if语句

2.1.1练习

2.2 switch语句


分支语句:

  • if
  • switch

循环语句:

  • while
  • for
  • do while

goto 语句

1.什么是语句

C语句可分为一下五类:

  1. 表达式语句
  2. 函数调用语句
  3. 控制语句
  4. 复合语句
  5. 空语句

在此我们只要讲解控制语句

C语言是一门结构化的程序设计语言

控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序语句,选择结果,循环结构)他们由特定的语句定义符组成,C语言有九种控制语句。

  1. 条件判断语句也叫分支语句:if语句、switch语句
  2. 循环执行语句:so while语句、while语句、for语句
  3. 转向语句:break语句、goto语句、continue语句、return语句

2.分支语句(选择结构)

如果你好好学习,校招时拿一个好offer,走上人生巅峰。

如果不学习,毕业等于失业,回家卖红薯。

这就是选择。

以上时双分支语句,我们还会学习到三分支和多分支。

2.1 if语句

单分支语法结构

if(表达式)                表达式的结果如果为真,语句执行

        语句:                  0表示假        非0表示真

双分支语法结构

if (表达式1)

        语句1;

else

        语句2;

多分枝语法结构

if (表达式1)

        语句1;

else if

        语句2;

else

        语句3;

代码演示:

单分支的结构:

#include 
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age >= 18)
		printf("成年\n");
	return 0;
}

如果年龄大于等于18

双分支结构:

#include 
int main()
{
	int age = 0;
	if (age >= 18)
		printf("成年\n");
	else
		printf("未成年\n");
	return 0;
}

如果年龄大于等于18,否则打印未成年。

多分支结构:

#include
int main()
{
	int age = 0;
	scang("%d",&age);
	if (age < 16)
		printf("少年\n");
	else if (age >= 16 && age < 30)
		printf("青年");
	else if (age >= 30 && age < 40)
		printf("中年");
	else if (age >= 40 && age < 56)
		printf("状年");
	else if (age >= 56 && age < 80)
		printf("老年");
	else
		printf("老寿星");
	return 0;
}

如果条件成立,要执行多条语句,怎应该使用代码块。

if语句默认只能控制一条语句,如果想控制多条语句,那么要加上{}。

else是和最近的if匹配


2.1.1练习

1. 判断一个数是否为奇数

2. 输出1-100之间的奇数

思路:判断一个数是否为奇数

一个整数%上2余1,他就是奇数,否则他就是偶数,我们输入一个数字,利用if语句判断。

#include
int main()
{
	int a = 0;
	scanf("%d",&a);
	//判断是否为奇数
	if (a % 2 == 1)
		printf("奇数");
	else
		printf("偶数");
	return 0;
}

思路:输出1-100之间的奇数

首先我们要生成1—100的数字,再判断他是不是奇数,是奇数我们就打印

#include
int main()
{
	int a = 0;
	while(a <= 100)
	{
		if (a % 2 == 1)
		{
			printf("%d\n",a);
		}
		a++;
	}
	return 0;
}

当然,我们还有另一种效率更高的方法,我们可以找到规律,每个奇数中间相差2。

#include
int main()
{
	int a = 1;
	while (a <= 100)
	{	
		printf("%d",a);
		a += 2;
	}

	return 0;
}

2.2 switch语句

switch也是一种分支语句。

常常用于多分枝的情况。

比如:

输入1,输出星期一

输入2,输出星期二

输入3,输出星期三

输入4,输出星期四

输入5,输出星期五

输入6,输出星期六

输入7,输出星期日

#include
int main()
{
	int day = 0;
	scanf("%d", &a);
	if (day == 1)
 		printf("星期一\n");
	else if (day == 2)
		printf("星期二\n");
	else if (day == 3)
		printf("星期三\n");
	else if (day == 4)
		printf("星期四\n");
	else if (day == 5)
		printf("星期五\n");
	else if (day == 6)
		printf("星期六\n");
	else
		printf("星期日\n");
	return 0;
}

我们可以写成if...else if...else if...else if...,但是太过于复杂,那么我们就可以视为switch语句。

switch(整形表达式)

{

        语句项:

}

语句项是什么呢?

是一些case语句

如下:

case 整形常量表达式

        语句:

#include 
int main()
{
    int day = 0;
    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;
        default:
            printf("选择错误");
            break;
   }
    return 0;
}

注:case是相当于入口,如果没有break停止的话去,程序还是依然会往后执行。

当所有的case不匹配的时候,就可以使用default字句

下面让我们来看这一段代码的运行结果是多少。

#include 
int main()
{
    int n = 1;
    int m = 2;
    switch (n)
   {
    case 1:
            m++;
    case 2:
            n++;
    case 3:
            switch (n)
           {//switch允许嵌套使用
             case 1:
                    n++;
             case 2:
                    m++;
                    n++;
                    break;
           }
    case 4:
            m++;
            break;
    default:
            break;
   }
    printf("m = %d, n = %d\n", m, n);
    return 0;
}

这个是主要看大家有没有掌握switch语句的语法规则。

#include
int main()
{
    int n = 1;
    int m = 2;
    switch (n)        n=1,进入case1
   {
    case 1:
            m++;        m=3,没有break进入case2
    case 2:
            n++;        n=2,没有break进入case3
    case 3:
            switch (n)        n=2,进入case2
           {//switch允许嵌套使用
             case 1:
                    n++;
             case 2:
                    m++;        m=4
                    n++;        n=3
                    break;        
           }
    case 4:        进入
            m++;        m=5
            break;
    default:
            break;
   }
    printf("m = %d, n = %d\n", m, n);        m=5,n=3
    return 0;
}

通过这个我们要知道两点,第一是switch语句可以嵌套使用

                                           第二是break只会跳出他所在的switch语句


你可能感兴趣的:(C语言,c++,c语言,开发语言)