当前位置: 首页 > news >正文

6.10 c语言

7.1 if-else语句

简化形式
if(表达式)语句块
阶梯形式
if(表达式1)语句块1
else if(表达式2)语句块2
嵌套形式
if()
if() 语句1
else 语句2
else
if() 语句3
else 语句4
表达式一般情况下为逻辑表达式或关系表达式

#include <stdio.h>//从小到大排序,输出顺序不变,值交换了
int main()
{int a,b,c,t;printf("请输入3个数:");scanf("%d%d%d",&a,&b,&c);if(a>b){t = a;a = b;b = t;}if(a>c){t = a;a = c;c = t;}if(b>c){t = b;b = c;c = t;}printf("从小到大为%d,%d,%d",a,b,c);return 0;
}

7.2 switch语句

多分支选择结构
switch(表达式)
{
case 常量表达式1: 语句块1:break;
default: 语句块n+1
}
1、每个常量表达式的值必须各不相同,否则将出现矛盾
2、当表达式的值与case后面的常量表达式的值相等时,就执行case后面的语句
3、switch中的表达式可以是整形,字符型表达式或枚举
4、case常量:只起语句标号的作用
5、break语句用于强行跳出Switch体,一般每个case后面应有一个break语句,defalut分支后的break可以省略
6、多个case可以执行一条语句

#include <stdio.h>
int main()
{int tmp = 1;switch(tmp){case 1:printf("A\n");//break;case 2:printf("B\n");break;default:printf("NOT");}return 0;
}

//Switch学生成绩

#include <stdio.h>
int main()
{float score = 0;printf("请输入成绩:");scanf("%f",&score);if(score<0 || score>100){printf("输入错误!\n");}else{switch((int)score/10)//强制转换类型(int){case 9:printf("A\n");break;case 8:printf("B\n");break;case 7:printf("C\n");break;default:printf("D");}}return 0;
}

7.3 循环语句

7.3.1 goto

当程序有多个出口,使用goto把这些出口集中到一处很方便,特别是函数中有很多重复的工作的时候
1、无条件跳转易于理解
2、可以减少嵌套
3、帮助编译器做优化

#include <stdio.h>
int main()
{int i,sum = 0;loop://loop跳转if(i<=100){sum += i;i++;goto loop;//跳转loop}printf("%d",sum);return 0;
}

7.3.2 while

while(表达式)
{
statements;
}
1、变量初值
2、终止条件
3、变量变化

#include <stdio.h>
int main()
{int i,sum = 0;while(i<=100)//先判断再执行{sum += i;i++;}printf("%d",sum);return 0;
}

7.3.3 do-while

do-while构成循环
do{
statements;
}while(表达式);

#include <stdio.h>
int main()
{int i,sum = 0;do{sum += i;i++;}while(i<=100);printf("%d",sum);return 0;
}

7.3.4 for

表达式1可以省略,但循环之前应要给循环变量赋值
表达式2可以省略,将陷入死循环
表达式3可以省略,但在循环体中增加循环使变量的值改变的语句

#include <stdio.h>
int main()
{int i = 0,sum = 0;for(;i<=100;){sum += i;i++;}printf("sum = %d",sum);return 0;
}
#include <stdio.h>//99乘法表
int main()
{int i = 0,j = 0;for(i=1;i<=9;i++){for(j=1;j<=i;j++)printf("%d*%d=%d\t",j,i,j*i);// \t缩进8位puts("");//输出字符串,字符串自动换行}return 0;
}

7.4辅助控制语句

7.4.1 break

用于从循环体内跳出一层循环体,即提前结束循环
break只能用在循环语句和Switch语句中

#include <stdio.h>
#define PI 3.14
int main()
{float r = 0,area = 0;for(r=1;r<=10;r++){area = PI*r*r;if(area>100)break;printf("r = %f,area = %f\n",r,area);}return 0;
}

7.4.2 continue

结束本次循环,接着判定下一次是否执行循环
continue只结束本次循环,break终止本层循环

#include <stdio.h>
#define PI 3.14
int main()
{int i;for(i=100;i<=120;i++){if(i%3 == 0)continue;//余0终止本次执行下一次printf("i = %d\n",i);}return 0;
}

7.4.3 return

终止包含它的函数执行

http://www.lryc.cn/news/369194.html

相关文章:

  • jenkins插件之Jdepend
  • vue3之基于el-image实现图片预览
  • wooyun_2015_110216-Elasticsearch-vulfocus
  • Fedora的远程桌面
  • CSS id选择器
  • 22.搭积木
  • 手机投屏到电脑时,手机提示连接失败
  • 软件测试--Mysql快速入门
  • 什么是PV操作
  • 差动放大器
  • 【数据结构与算法 经典例题】括号匹配问题
  • 2024年6月最新开源电视影视TVAPP原生源码和后台管理平台源码及完整教程
  • [大模型]GLM4-9B-chat Lora 微调
  • 目标检测算法YOLOv9简介
  • 达梦数据库搭建守护集群
  • OpenGL-ES 学习(6)---- Ubuntu OES 环境搭建
  • Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
  • 对象创建的4种模式
  • 如何判断 是否 需要 CSS 中的媒体查询
  • 设计模式-装饰器模式(结构型)
  • 升级HarmonyOS 4.2,开启健康生活篇章
  • 给gRPC增加负载均衡功能
  • 【优选算法】详解target类求和问题(附总结)
  • 【数据结构】图论入门
  • 11_1 Linux NFS服务与触发挂载autofs
  • 开发uniapp 小程序时遇到的问题
  • 怎样快速获取Vmware VCP 证书,线上考试,voucher报名优惠
  • LeetCode 1141, 134, 142
  • 华为FPGA工程师面试题
  • Windows11上安装docker(WSL2后端)和使用docker安装MySQL和达梦数据库