控制语句

  控制语句包括分支语句(选择语句),循环语句和其他语句,今天我们来系统性的学习一下这三种语句。

生活中的所有事情都可以抽象为顺序,选择,循环三种模式,或者是三种模式的结合

一.分支语句:if语句,switch语句

1.if语句

  if语句的格式是:(1)单分支情况(即一种选择)

                                       if(条件表达式)

                                       语句

#include <stdio.h>

int main()
{
	int a = 3;
	int b = 3;
	if (a == b)//==是用于比较两个值是否相等的运算符,而=是赋值运算符。
    {
		printf("a=b");
    }
	return 0;
}

                             (2)双分支情况(即两种选择)

                                       if(条件表达式)

                                      语句

                                      else(另一种选择)

                                      语句

int main()
{
	int a = 3;
	int b = 3;
	if (a == b)
	{
		printf("a等于b");
	}
	else//这里只有两种情况,一种是a=b,一种是a≠b,上面的if跟的是a
等于b的情况,所以else这里只剩下另外一种情况a不等于b
	{
		printf("a不等于b");
	}
	return 0;
}

当a=b时,就会执行if语句,else语句不执行,输出结果为:a等于b

当a≠b时,就执行else语句,if语句不执行,输出结果为:a不等于b

                              (3)多分支情况

                                      if(条件表达式)

                                      语句

                                      else  if(条件表达式)

                                      语句

                                      ......(有多少种选择就根据情况加几个else  if,每个else  if后跟一种选择,如果条件满足就进行这个选择)

                                       else(条件表达式)

                                       语句

#include <stdio.h>

int main()
{
	int a = 3;
	int b = 4;
	if (a < b)
	{
		printf("a小于b");
	}
	else if (a > b)
	{
		printf("a大于b");
	}
	else
	{
		printf("a等于b");
	}
	return 0;
}

2.switch语句

switch语句的格式是:

  switch(表达式)

  {

    case 常量表达式1:

    语句1

    case 常量表达式2:

    语句2

    ......

    case 常量表达式n:

    语句n

    default:语句n+1

  }

#include <stdio.h>  
  
int main()  
{  
    char grade = 'A'; // 成绩等级  
  
    switch (grade)  
    {  
        case 'A':  
            printf("优秀\n"); // 打印"优秀",并换行  
            break; // 结束switch语句  
  
        case 'B':  
        case 'C':  
            // 由于'B'和'C'共享相同的代码块,这里会打印"良好"  
            printf("良好\n"); // 打印"良好",并换行  
            break; // 结束switch语句  
  
        case 'D':  
            printf("及格\n"); // 打印"及格",并换行  
            break; // 结束switch语句  
  
        default:  
            // 如果grade不是'A'、'B'、'C'或'D',则执行这里  
            printf("不及格\n"); // 打印"不及格",并换行  
            break; // 实际上,在这里break是可选的,因为switch语句已经结束  
    }  
  
    return 0; // 程序正常结束  
}

  在这个程序中,switch语句根据grade变量的值选择执行的代码块。由于grade被初始化为'A',程序将执行与'A'对应的case块,打印"优秀",然后通过break语句跳出switch结构。如果grade是其他值,如'B'或'C',则会执行共享的代码块并打印"良好"。如果grade是'D',则打印"及格"。如果grade不是这四个值中的任何一个,则执行default块,打印"不及格"。

需要注意的是,case后面只能跟整型(int),字符型(char)或枚举型。break用于结束switch语句,如果没有遇到break语句,那么代码就会继续执行下去。

二.循环语句

1.do  while语句

do  while语句格式为:

  do

    循环体

  while(条件表达式)

#include <stdio.h>

int main()
{
	int a = 1;
	do
	{
		printf("%d ", a);
		a++;
	} 
	while (a <= 10);//while()为判断循环何时结束,当a>10时循环结束
	return 0;
}

上面代码运行效果为在屏幕上打印出1 2 3 4 5 6 7 8 9 10

值得注意的是,do  while语句是先执行一次循环,再判断是否结束循环。

2.while语句

while语句的格式为:

  while(条件表达式)

    循环体

#include <stdio.h>

int main()
{
	int a = 1;
	while (a <= 10)//判断是否执行循环,当a>10时,循环结束,执行return 0;
	{
		printf("%d ", a);
		a++;
    }
	return 0;
}

运行结果为在屏幕上打印1 2 3 4 5 6 7 8 9 10

3.for语句

for语句的格式为:

  for(表达式1;表达式2;表达式3)

    循环体

#include <stdio.h>

int main()
{
	int a = 1;
	for(a=1;a <= 10;a++)//a=1为给a初始化为1,a<=10为判断循环是否结束的条件,a++为调整部分,用于循环条件的调整
	{
		printf("%d ", a);
    }
	return 0;
}

表达式1为初始化部分

表达式2为条件判断部分,判断何时循环终止

表达式3为调整部分,用于循环条件的调整

  所以for循环是将循环体所用的控制放在循环顶部统一展示,显得更直观。同时for语句还充分表现了其灵活性。

(1)表达式1可以省略。此时应在for语句之前给循环变量赋初值。若省去表达式1,其后分号;不能省略。

(2)表达式2可以省略,即不判断继续条件,循环无终止进行下去,这时候若要终止循环,则需要在循环体中有跳出循环的控制语句如break语句。

(3)表达式3可以省略,但此时应另设方法让循环变量递进变化,以保证循环能正常结束,如在循环体中加上a++;

(4)表达式1,2,3都可省略或省略其中两个,此时循环仍可进行。

三.其他语句

1.break:用于终止循环,不管之后还有没有循环,有没有满足终止循环的条件,都直接运行return 0;。或用于退出switch语句,防止继续执行下一个case代码块。

2.continue:用于跳过本次循环,当未满足终止循环条件时,执行下一次循环。与break形成鲜明对比

3.go to:go to 语句是一种无条件跳转语句,它允许程序直接跳转到程序中标记的某个位置继续执行。goto 语句可以用于跳出多层嵌套的循环或条件语句,但通常更好的做法是使用循环控制语句(如 break)和函数返回(return)来实现这一目标。

4.return:return语句用于从函数返回一个值给调用者,并结束函数的执行。return语句可以出现在任何类型的函数中,包括返回值为void的函数(在这种情况下,return语句不返回任何值,只是简单地结束函数的执行)。

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值