深入了解C语言中的分支循环语句

引言: C语言中的分支与循环语句是编程中常用的工具,它们让程序变得更加灵活和智能化。在本文中,我将详细介绍C语言中的分支与循环语句,包括if语句、if-else语句、多个else if语句、switch语句、if嵌套、循环语句以及循环嵌套。通过对这些语句的深入了解,我们可以更好地掌握C语言的编程技巧。

一、分支语句

1.1 单分支语句: if 

       if 语句是C语言中最基本的条件语句,它用于根据条件的真假来决定程序执行的路径。if语句的基本语法如下:

if (条件表达式)
{
    //如果条件为真,则执行这里的代码
}

1.2 双分支语句:if-else

        if-else 语句允许在条件为假时执行备选代码块。其语法如下:

if (条件表达式)
{
    //如果条件为真,则执行这里的代码
}
else 
{
    //如果条件为真,则执行这里的代码
}

1.3 多分支语句:else if 语句和 switch 语句

       1.3.1 else if 语句

       多个 else if 语句: 可以使用多个 else if 语句来增加更多的条件判断。多个 else if 语句的基本语法如下:

if (条件表达式1)
{
    //如果条件为真,则执行这里的代码
}
else if (条件表达式2)
{
    //如果条件为真,则执行这里的代码
}
else if (条件表达式3)
{
    //如果条件为真,则执行这里的代码
}
// 可以继续添加更多的else if语句
else
{
    //如果条件为真,则执行这里的代码
}

        if语句使用注意事项:

        1.多分支语句中的代码块只能执行一个(及上图中表达式1、2、3和 else 只能选一个执行),若想执行多个代码块,连用 if 即可,代码如下:

if(条件)
{
      // 如果条件为真,则执行这里的代码
}
if(条件)
{
      // 如果条件为真,则执行这里的代码
}
if(条件)
{
      // 如果条件为真,则执行这里的代码
}
...

        2.若有悬空 else,else 与最近的 if 匹配!代码如下:问运行结果

int a=0;
int b=2;
if(a==1)
   if(b==2)
       printf("hehe\n");
else
   printf("haha\n");

 运行结果是什么?什么都不输出,因为 else 和 if(b==2) 匹配。

       1.3.2 switch 语句

       switch 语句用于根据不同的取值,执行不同的代码块。它通常用于替代多个else if 语句的情况。在像 C 或 C++ 这样的编译型语言中,switch 语句通常使用跳转来实现,而else if 则需要对比多个表达式语句,所以当分支很多时,switch 可能比一系列 else if 语句的执行更快。switch 语句的基本语法如下:

switch (整形表达式)
{
    case 值1(整形常量表达式,下同):
        // 如果表达式的值等于值1,则执行这里的代码
        break;
    case 值2:
        // 如果表达式的值等于值1,则执行这里的代码
        break;
    // 可以继续添加更多的case语句
    default:
        // 如果表达式的值不匹配任何case,则执行这里的代码
        break;
}

        switch 语句使用注意事项:

  1. 每个 case 必须有 break 或者其他终止语句: 在每个 case 块结束时,务必添加语句 break,以避免继续执行下一个 case 块。case 是 switch 的入口,break 是出口。

  2. case 值必须是整形常量表达式,字符也是整形: switch 在语句中的 case 标签必须是整形常量表达式,字符型也属于整形。

  3. default 位置任意,建议放最后: 考虑在 switch 语句中包含 default 块,以处理未匹配到任何 case 值的情况。这样可以确保即使没有匹配到任何 case 值,程序也不会出现错误。其中default 位置任意,并不会放在开头就先匹配 default 块。

1.4 嵌套if语句

         在C语言中,可以嵌套多个 if 语句来实现更复杂的条件逻辑。例如:

if (条件1) {
    if (条件2) {
        // 如果条件1和条件2同时为真,则执行这里的代码
    }
}

关于分支语句的基本知识点已经说完了,我们来看一个实例

       KiKi想知道已经给出的三条边a,b,c能否构成三角形,如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形或普通三角形)。

输入描述:

题目有多组输入数据,每一行输入三个a,b,c(0<a,b,c<1000),作为三角形的三个边,用空格分隔。

输出描述:

针对每组输入数据,输出占一行,如果能构成三角形,等边三角形则输出“Equilateral triangle!”,等腰三角形则输出“Isosceles triangle!”,其余的三角形则输出“Ordinary triangle!”,反之输出“Not a triangle!”。


int main() {

    //三角形三条边
    int a=0;
    int b=0;
    int c=0;
    while(scanf("%d %d %d",&a,&b,&c)!=EOF)
    {
       if(a>0 && a<1000 && b>0 && b<1000 && c>0 && c<1000)//输入合法
       {
           if(a+b>c&&a+c>b&&b+c>a)//是三角形
           {
               if(a==b&&a==c&&b==c)
                   printf("Equilateral triangle!\n");//等边三角形
               else if(a==b||b==c||c==a)
                   printf("Isosceles triangle!\n");//等腰三角形
               else
                   printf("Ordinary triangle!\n");//普通三角形
           }
           else //不是三角形
               printf("Not a triangle!\n");
       }
    }

    return 0;
}

二、 循环语句

        循环语句在满足特定条件的情况下反复执行某个代码块,以达到重复执行的目的。C语言中有三种循环语句:while 循环、do while 循环和 for 循环。它们的基本语法如下:

2.1 while循环:

      while 循环在条件为真时重复执行代码块,直到条件变为假为止。其语法如下:

while (条件表达式)
{
    // 只要条件为真,就会重复执行这里的代码
}

2.2 do while循环:

      do while 循环首先执行一次代码块,然后检查条件是否为真,如果为真,则重复执行代码块。其语法如下:

do
{
    // 至少执行一次这里的代码
} while (条件表达式);

2.3 for循环

      for 循环提供了一种更加简洁的循环结构,允许在一个语句中初始化循环控制变量、检查循环条件和更新循环控制变量。其语法如下:

for (初始化语句; 循环条件; 循环后操作)
{
    // 在每次循环迭代时执行这里的代码
}

2.4 嵌套循环

      循环嵌套可以通过将一个循环放置在另一个循环的循环体内来实现。通过循环嵌套,可以处理更复杂的问题,例如二维数组的遍历或多维数组的操作。

for (i = 0; i < m; i++)
{
    for (j = 0; j < n; j++)
    {
        // 循环嵌套中的代码块
    }
}

关于分支语句的基本知识点已经说完了,我们来看一个实例

输出九九乘法表,代码如下:

int main()
{
	int i = 0;
	int j = 0;
	for (i = 1; i <=9; i++)
	{
		for (j = 1; j <= i; j++)
		{
			printf("%d*%d=%-2d  ", j,i,i * j);
		}
		printf("\n");
	}
	return 0;
}

结论: 通过对C语言的分支和循环语句的深入了解,我们可以更好地掌握C语言的编程技巧。if、else if、switch、循环嵌套等语句的灵活运用,可以使我们的程序更加智能,提高代码的可读性和可维护性。同时,循环语句的掌握能够帮助我们实现代码的循环执行,提高编程效率。总的来说,分支和循环语句是C语言中必不可少的基本语法,熟练掌握它们将使我们的编程能力得到很大提高。

  • 28
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值