C语言:分支语句和循环语句(超详解)

目录

​编辑

什么是语句?

分支语句(选择结构)

if语句:

应该注意的是:

switch语句:

运用练习:

循环语句

while循环:

for循环:

break和continue在for循环中:

for循环的变换使用:

do...while()循环

[do while循环中的break和continue:](#do while循环中的break和continue:)

goto语句

以上就是个人学习见解和学习的解析,欢迎各位大佬在评论区探讨!

[感谢大佬们的一键三连! 感谢大佬们的一键三连! 感谢大佬们的一键三连!](#感谢大佬们的一键三连! 感谢大佬们的一键三连! 感谢大佬们的一键三连!)


什么是语句?

C语句可分为以下五类:
1. 表达式语句
2. 函数调用语句
3. 控制语句
4. 复合语句
5. 空语句
本章介绍的是控制语句。
控制语句 用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构 ),它们由特定的语句定义符组成,C 语言有九种控制语句
可分成以下三类:

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

分支语句(选择结构)

这就是选择!

if****语句:

//语法结构:
if ( 表达式 )
语句 ;
if ( 表达式 )
语句 1 ;
else
语句 2 ;
// 多分支
if ( 表达式 1 )
语句 1 ;
else if ( 表达式 2 )
语句 2 ;
else
语句 3 ;

cpp 复制代码
#include <stdio.h>
//代码1
int main()
{
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
        printf("未成年\n");
   }
}

//代码2
#include <stdio.h>
int main()
{
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
        printf("未成年\n");
   }
    else
   {
        printf("成年\n");
   }
}

//代码3
#include <stdio.h>
int main()
{
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
        printf("少年\n");
   }
    else if(age>=18 && age<30)
   {
        printf("青年\n");
   }
    else if(age>=30 && age<50)
   {
         printf("中年\n");
   }
    else if(age>=50 && age<80)
   {
        printf("老年\n");
   }
    else
   {
        printf("老寿星\n");
   }
    
}

应该注意的是:

else的匹配:else是和它离的最近的if匹配的。

switch****语句:

switch ( 整型表达式 )
{
语句项;
}
语句项:
// 是一些 case 语句:
**default:**当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。
// 如下:
case 整形常量表达式 :
语句 ;
default 整形常量表达式 :
语句 ;
语句:
break 语句 的实际效果是退出一个循环。
continue语句的实际效果是回到一个循环的开头处。

运用练习:

cpp 复制代码
#include <stdio.h>
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;
}

循环语句

由于我们发现生活中很多的例子是:同一件事情我们需要完成很多次。

所以C语言中给我们引入了: while 语句 ,可以实现循环

while****循环:

//while 语法结构
while ( 表达式 )
循环语句 ;

cpp 复制代码
//continue 和 break 代码实例
#include <stdio.h>
int main()
{
	int i = 1;
	int j = 10;
    //break实现
	while (i <= 10)
	{
		if (i == 5)
		{
			break;
		}
		printf("%d ", i);
		i = i + 1;
	}
    //continue实现
	while (j >= 10)
	{
		j = j + 1;
		if (j == 15)
		{
			continue;
		}
		printf("%d ", j);
	}
	return 0;
}

总结:
break 在 while 循环中的作用:
其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环
所以:while中的break是用于永久终止循环的。
continue 在 while 循环中的作用就是:
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行
而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。

for****循环:

for ( 表达式1 ; 表达式2 ; 表达式3 )
循环语句 ;
表达式 1
表达式 1 为 初始化部分 ,用于初始化循环变量的。
表达式 2
表达式 2 为 条件判断部分 ,用于判断循环时候终止。
表达式 3
表达式 3 为 调整部分 ,用于循环条件的调整。

cpp 复制代码
#include <stdio.h>
int main()
{
 int i = 0;
 //for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/)
 for(i=1; i<=10; i++)
 {
 printf("%d ", i);
 }
 return 0;
}

breakcontinuefor****循环中:

for 循环中也可以出现break和continue ,他们的意义和在****while 循环中是一样的。

cpp 复制代码
#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
			break;
		printf("%d ", i);
	}
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
			continue;
		printf("%d ", i);
	}
	return 0;
}

for循环的变换使用:

cpp 复制代码
#include <stdio.h>
int main()
{
 //代码1
 for(;;)
 {
 printf("hehe\n");
 }
    //for循环中的初始化部分,判断部分,调整部分是可以省略的,但是不建议初学时省略,容易导致问
题。
    
    //代码2
    int i = 0;
    int j = 0;
    //这里打印多少个hehe?
    for(i=0; i<10; i++)
   {
        for(j=0; j<10; j++)
       {
 printf("hehe\n");
       }
   }
    
    //代码3
    int i = 0;
    int j = 0;
    //如果省略掉初始化部分,这里打印多少个hehe?
    for(; i<10; i++)
   {
        for(; j<10; j++)
       {
 printf("hehe\n");
       }
   }
    
 //代码4-使用多余一个变量控制循环
 int x, y;
    for (x = 0, y = 0; x<2 && y<5; ++x, y++)
   {
        printf("hehe\n");
   }
 return 0;
}

**do...while()**循环:

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

**特点:**循环至少执行一次,使用的场景有限,所以不是经常使用。

do while循环中的breakcontinue:

cpp 复制代码
#include <stdio.h>
int main()
{
 int i = 1;
 do
 {
        if(5 == i)
            break;
 printf("%d ", i);
        i=i+1;
 }while(i<=10);
    
 return 0;
}
#include <stdio.h>
int main()
{
 int i = 1;
    
 do
 {
        if(5 == i)
            continue;
 printf("%d ", i);
        i=i+1;
 }while(i<=10);
    
 return 0;
}

goto****语句:

一般用于 一次跳出两层或多层循环

多层循环这种情况使用break 是达不到目的的。它只能从最内层循环退出到上一层的循环

以上就是个人学习见解和学习的解析,欢迎各位大佬在评论区探讨!

感谢大佬们的一键三连! 感谢大佬们的一键三连! 感谢大佬们的一键三连!

相关推荐
十有久诚14 分钟前
TaskRes: Task Residual for Tuning Vision-Language Models
人工智能·深度学习·提示学习·视觉语言模型
Amo Xiang14 分钟前
Python 常用模块(四):shutil模块
开发语言·python
PD我是你的真爱粉30 分钟前
GPTo1论文详解
人工智能·深度学习
Happy鱿鱼32 分钟前
C语言-数据结构 有向图拓扑排序TopologicalSort(邻接表存储)
c语言·开发语言·数据结构
KBDYD101033 分钟前
C语言--结构体变量和数组的定义、初始化、赋值
c语言·开发语言·数据结构·算法
计算机学姐34 分钟前
基于python+django+vue的影视推荐系统
开发语言·vue.js·后端·python·mysql·django·intellij-idea
LWDlwd052535 分钟前
shell指令及笔试题
c语言
Crossoads1 小时前
【数据结构】排序算法---桶排序
c语言·开发语言·数据结构·算法·排序算法
扎克begod1 小时前
JAVA并发编程系列(9)CyclicBarrier循环屏障原理分析
java·开发语言·python
自身就是太阳1 小时前
2024蓝桥杯省B好题分析
算法·职场和发展·蓝桥杯