C语言从头学12——流程控制(一)

news/2024/9/24 11:24:58/

       C语言程序的执行顺序是从前到后依次序执行的。如果想要控制程序执行的流程,就必须使用
流程控制的语法结构,分为条件执行和循环执行。
1、if语句
        if 语句在前面的举例中曾经出现过,这里做详细介绍。该语句用于条件判断,满足条件时,就执行指定的语句。
        格式一、 if (条件表达式) 要执行语句 //含义:如果"条件表达式 "为"真" 则执行 "要执行的语句",否则就跳过去。例如:

if(x==5) printf("x的值是5"); //运行结果:只有当x等于5时,才显示"x的值是5"

       如果 "要执行的语句" 有两条及以上,就需要把 "要执行的语句" 用大括号括起来,一般另起一行更清楚。格式如下:
            if ( 条件表达式 )
            {
               语句1;
               ......
               语句n;//要执行语句后边必须有分号";"
            } //大括号后边不用加分号(";")
     实际上,即使只有一条要执行的语句加上大括号后在逻辑上也显得更清楚。
     格式二、if (条件表达式)
            {
               语句1;
               .....
               语句n;
            } else //这里有一个else,在其后执行"条件表达式"为"假"的语句
            {
               语句1;
               .....
               语句n;
            }
   另外,else 后边还可以与另if语句连用,形成嵌套结构,格式如下:
    if (条件表达式1)
      {语句或语句块1;}
         else if (条件表达式2)
           {语句或语句块2;}
            ......
          else if(条件表达式n-1)
            {语句或语句块n-1;}
            else
               {语句或语句块n;} //收底语句
      顺带说一句,编辑代码时,根据执行的层次进行适当缩进,可以在看代码时逻辑更清楚。
      据说多层嵌套的if...else...if结构不是好的结构形式,容易出错,尽量不用。
2、三目运算符 "?  :"
     三目运算符可以看做是if...else结构的简写。
     格式:(条件表达式) ? (表达式1或值1) : (表达式2或值2) // 括号非必须 
     条件表达式为真返 (表达式1或值1),否则 (返回表达式2或值2)
 3、switch语句
     switch语句可以说是if...else语句的变种,用于判断有多个结果的情况。看起来比if...else
 语句更清楚。格式如下:
     switch(有返回值的表达式或变量)
     {
          case 返回值1: 语句1
                    break; //为了执行完相应语句后跳出switch结构,在下一case语句前
                           //加一个break以结束switch
         case 返回值n: 语句n
                    break;
         .......
         default: 兜底语句; //兜底语句后不用加break,后边没有要执行的语句了
    }
  switch 这种结构,多用于编写菜单代码。
 4、用上面介绍的流程控制语句编写一个小程序,用以加深对流程控制的理解。

#include<stdio.h>
int main(void)
{
//1、if语句的使用int a = 100;if (a > 50) printf("a的值大于50\n"); //条件后只有一个语句时可省去{}if (a == 100) //if..else...结构{printf("a的值等于100\n"); //条件成立执行此语句}else{printf("a的值不等于100\n"); //条件不成立执行此语句}
//2、三目运算符的使用int x = 1;a=500;int y;y = (x == 1) ? a : 50; //条件成立返回500,不成立返回50printf("y的值是%i\n", y);
//3、swich语句的使用int choice = 4;switch (choice){case 0: printf("choice的值是0\n");case 1: printf("choice的值是1\n");case 2: printf("choice的值是2\n");default:printf("choice的值不是1、2、3\n");}getchar();return 0;
}
//运行结果:
/*
a的值大于50
a的值等于100
y的值是500
choice的值不是1、2、3
*/


http://www.ppmy.cn/news/1463682.html

相关文章

【译】MySQL复制入门: 探索不同类型的MySQL复制解决方案

原文地址&#xff1a;An Introduction to MySQL Replication: Exploring Different Types of MySQL Replication Solutions 在这篇博文中&#xff0c;我将深入介绍 MySQL 复制&#xff0c;回答它是什么、如何工作、它的优势和挑战&#xff0c;并回顾作为 MySQL 环境&#xff0…

python 使用OCR 识别woff字体文件

做数据获取安**时发现请求返回的数据跟woff字体有关&#xff0c;这里写一个使用OCR识别方法&#xff0c; 1、重要部分的原理是解析woff文件&#xff0c;并将woff字体转为图片&#xff0c;并将字体编码与字体图片相对应&#xff0c;便于之后的数据解密解析。 2、使用的是muggl…

【MySQL精通之路】SQL优化(1)-查询优化(1)-WHERE子句

主博客&#xff1a; 【MySQL精通之路】SQL优化(1)-查询优化-CSDN博客 下一篇&#xff1a; 【MySQL精通之路】SQL优化(1)-查询优化(2)-范围查询优化-CSDN博客 本节讨论可用于处理WHERE子句的优化。 这些示例使用SELECT语句&#xff0c;但DELETE和UPDATE语句中的WHERE子句也适…

【吊打面试官系列】Java高并发篇 - Java 死锁以及如何避免?

大家好&#xff0c;我是锋哥。今天分享关于 【Java 死锁以及如何避免&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; Java 死锁以及如何避免&#xff1f; Java 中的死锁是一种编程情况&#xff0c;其中两个或多个线程被永久阻塞&#xff0c;Java 死锁情况出现至…

Python Requests库中data与json参数的区别

这里写目录标题 概述详细分析综合应用结论 概述 在Python的Requests库中&#xff0c;data和json参数常用于在HTTP请求中发送数据。它们的主要区别在于数据的编码方式和Content-Type头部。data参数通常用于发送表单数据&#xff0c;其数据会被编码为application/x-www-form-url…

基于Kubeeasy安装Kubernetes-v1.22.1版本(安装报错已解决)

基础环境准备 将提供的安装包 chinaskills_cloud_paas_v2.0.2.iso 上传至 master 节点 /root 目录&#xff0c;并解压 到 /opt 目录&#xff1a; [rootlocalhost ~]# ll total 7446736 -rw-------. 1 root root 1579 Mar 7 22:46 anaconda-ks.cfg -rw-r--r--. 1 root …

自定义原生小程序顶部及获取胶囊信息

需求&#xff1a;我需要将某个文字或者按钮放置在小程序顶部位置 思路&#xff1a;根据获取到的顶部信息来定义我需要放的这个元素样式 * 这里我是定义某个指定页面 json&#xff1a;给指定页面的json中添加自定义设置 "navigationStyle": "custom" JS&am…

基于Kafka的日志采集

目录 前言 架构图 资源列表 基础环境 关闭防护墙 关闭内核安全机制 修改主机名 添加hosts映射 一、部署elasticsearch 修改limit限制 部署elasticsearch 修改配置文件 启动 二、部署filebeat 部署filebeat 添加配置文件 启动 三、部署kibana 部署kibana 修…