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 是达不到目的的。它只能从最内层循环退出到上一层的循环

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

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

相关推荐
千金裘换酒2 小时前
LeetCode 移动零元素 快慢指针
算法·leetcode·职场和发展
方璧2 小时前
限流的算法
java·开发语言
wm10432 小时前
机器学习第二讲 KNN算法
人工智能·算法·机器学习
NAGNIP2 小时前
一文搞懂机器学习线性代数基础知识!
算法
NAGNIP2 小时前
机器学习入门概述一览
算法
Hi_kenyon2 小时前
VUE3套用组件库快速开发(以Element Plus为例)二
开发语言·前端·javascript·vue.js
曲莫终2 小时前
Java VarHandle全面详解:从入门到精通
java·开发语言
byxdaz3 小时前
C++内存序
c++
iuu_star3 小时前
C语言数据结构-顺序查找、折半查找
c语言·数据结构·算法