欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > C语言----分支语句

C语言----分支语句

2025/2/9 6:46:14 来源:https://blog.csdn.net/ciweic/article/details/144878564  浏览:    关键词:C语言----分支语句

目录

if

基本结构

分层结构

嵌套结构

注意:

switch_case

循环

for循环

基本结构

嵌套结构

基本结构变形

1. 变形一:

2. 变形二:

3. 变形三:

while循环

格式:

执行顺序:

do_while循环

格式:

循环控制语句


if

根据你符合我不同的条件,去执行了不同的语句

基本结构

if(表达式)
{// 你符合这个条件的时候,就执行语句块1语句块1;
}
else
{// 你不符合这个条件的时候,就执行语句块2语句块2;
}执行顺序:首先判断表达式是否成立,如果成立就执行语句块1,否则执行语句块2

分层结构

if(表达式1)
{语句块1;
}
else if(表达式2)
{语句块2;
}
...else{// 都不符合条件语句块n;}

嵌套结构

if(表达式1)
{if(表达式2){语句块2;}else{语句块3;}
}
else
{语句块;
}

注意:

1)if后面可以没有else,但是else前面必须有if

2)if和else后面的{}可以省略,但是只能匹配之后的一条语句

switch_case

switch(变量或表达式)
{case 常量1: 语句块1; break;case 常量2: 语句块2; break;case 常量3: 语句块3; break;...case 常量n: 语句块n; break;// 如果以上都没有匹配的话,就执行 default 后面的语句default: 语句块n+1}执行顺序:
判断switch后面的表达式的结果,和case后的常量相匹配,如果匹配成功,就执行对应的语句块,如果没有匹配成功就执行default后面的语句块,遇到break结束#include<stdio.h>int main(int argc, const char *argv[])
{int a;scanf("%d", &a);switch (a){case 1:printf("%d\n", a);    //删除break,语句重叠break;case 2:printf("%d\n", a);break;case 3:printf("%d\n", a);break;case 4:printf("%d\n", a);break;default:break;}return 0;
}

循环

for循环

基本结构

for(表达式1; 表达式2;表达式3)
{语句块;
}表达式1:赋初值
表达式2:循环的终止条件
表达式3:增值减值语句执行顺序:
首先执行表达式1进行赋值,然后判断表达式2是否成立,如果成立就进入循环执行语句块,再执行表达式3进行增值或减值然后继续判断表达式2是否成立,直到表达式2不成立退出循环

嵌套结构

for(表达式1; 表达式2; 表达式3)
{for(表达式4; 表达式5; 表达式6){语句块;}
}// 执行顺序:
// 首先执行表达式一,要对外层循环的变量进行赋值,判断它符不符合表达式二的条件,符合进入到内部的循环,执行表达式四,判断符不符合表达式五,符合执行语句块,然后执行表达式6,然后判断表达式五是否成立,直到内部 for 循环,表达式六不符合表达式五的条件,后到外层的表达式三,内部执行一遍对于外层只执行了一次,如果表达式三符合表达式五,那么就还要在进入到 内部循环一遍,直到外层循环的表达式二不成立,那么整个循环结束#include <stdio.h>int main(int argc, const char *argv[])
{int i; // 循环变量for (i = 1; i <= 10; i++){printf("---------第%d次-------\n", i);for (j = 1; j <= 10; j++){printf("i:%d  j:%d", i, j);printf("\n");}}return 0;
}

基本结构变形

1. 变形一:
int i = 0;
for(;表达式2; 表达式3)
{语句块;
}
2. 变形二:
int i = 0;
for(;表达式2; )
{语句块;表达式3;
}
3. 变形三:
for(;;)// 死循环
{if(表达式2)
{语句块;表达式3;
}else
{break;
}
}

练习.打印以下图案:

要求行数从终端输入。

输入:5

// 结果
*
**
***
****
*****    
int x; = 行数
int y; = 每一行有多少个*

解题思路:

用for循环嵌套实现外层循环控制行数,内层循环控制每行个数。

while循环

格式

定义循环变量并赋值;
while(判断条件)  // 表达式
{语句块;// 循环完成之后需要改变定义变量的值增值或减值语句;
}

执行顺序:

首先定义循环变量并赋值,然后判断是否符合条件,如果符合就进入循环执行语句块及增值减值语句,然后继续判断,直到判断条件不成立退出循环

#include <stdio.h>int main(int argc, char const *argv[])
{int i = 1, num = 0;while (i <= 100){num += i;i++;}printf("%d\n", num);return 0;
}
找错
int main()
{while(1>0);   // 死循环printf("hello");return 0;
}

do_while循环

格式:

定义循环变量并赋值;
do
{语句块;增值减值语句;
} while(终止条件);先执行后判断死循环:
for(;;){};
while(1){};
// 让程序卡死在这等
while(1);

循环控制语句

break; continue;

break:直接结束循环

continue:结束本次循环,继续下一次循环

for (; i <= 10; i++)
{if(i == 3){break;// continue;}printf("%d\n", i);
}使用场景:使用在循环语句中,结束循环使用时需要判断条件

练习:从终端上输入一个字符并在终端上输出这个字符,当输入字符为‘q’时,程序结束。

练习:循环输入一个5位数,判断它是不是回文数。当输入0时循环结束。

即12321是回文数,个位与万位相同,十位与千位相同。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com