IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言分支和循环语句 -> 正文阅读

[C++知识库]C语言分支和循环语句

???????

目录

1. 分支语句 ( 选择结构 )

??????? 1.1 if 语句

1.2 switch 语句

2. 循环语句

2.1 while 循环语句

2.1.1? while 语句的基本语法:

2.1.2? while 语句中的 continue 和 break

2.2 for 循环语句

2.2.1? for 语句的基本结构?

2.2.2? for 循环中的 break 和 continue

2.2.3? for 循环的一些变种

3.1 do while 循环语句

3.3.1 do while 语句的语法与基本结构

3.3.2 do while 语句中的 break 和 continue

4.1 goto 语句

4.1.1 goto 语句的基本语法


????????????????C语言是一门结构化程序设计语言。支持三种结构

????????????????????????1. 顺序结构??????? 2.选择结构??????? 3.循环结构

这三种结构可以实现所有的代码逻辑。它们由特定的语句定义符组成,C语言有九种控制语句

分以下三类:

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

1. 分支语句 ( 选择结构 )

??????? 1.1 if 语句

??????????????? if 语句的语法结构如下。 其中 如果表达式的结果为真,则执行块中的语句。

在C语言中如何表示真假呢? 不止 if 所有的判断表达式都是:? 0 表示假 ,非0 表示真

//单分支
if (表达式)
{
    语句;
}

//多分支
if (表达式)
{
    语句1;
}
else
{
    语句2;
}

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

??????? 在写代码时应注意一一对应,养成良好的代码风格。else 与最近的 if 相对应。

1.2 switch 语句

??????? switch 也是一种分支语句。常常用于多分支的情况。switch 的语法结构 还需搭配 break 才能真正实现分支。

switch (整型表达式)   // 只能是 整型 !!
{
    语句项;
}

// 案例
#include <stdio.h>
int main()
{
    int day = 0;
    scanf("%d", &day)  //输入一个日期
    
    switch(day)
    {
        case 1:
            printf("星期一");
            break;
        case 2:
            printf("星期2");
            break;
        case 3:
            printf("星期3");
            break;
        case 4:
            printf("星期4");
            break;
        case 5:
            printf("星期5");
            break;
        case 6:
            printf("星期6");
            break;
        case 7:
            printf("星期7");
            break;
        default:
            printf("wrong")
            break;

    }
    return 0;
}


//或者直接写成
int main()
{
    int day = 0;
    scanf("%d", &day)  //输入一个日期
    
    switch(day)
    {
        case 1:                //如 day 为1 ,首先执行case 1: 而case 1无表达式,无break
        case 2:                // 故继续执行 case 2: case 3: 一直到 case 5:
        case 3:                //程序输出 工作日。 同理,day = 2 时也是输出 工作日
        case 4:                // day = 6 或者 day = 7时输出 休息日
        case 5:
            printf("工作日");
            break;
        case 6:
            printf("休息日");
            break;
        case 7:
        default:              // 输入除了1 - 7 的数时,输出 wrong
            printf("wrong")
            break;

    }
    return 0;
}

breakdefault 的作用。

????????break 的实质作用就是把语句列表划分为不同的分支部分。如果不加break, 语句执行完case1 的内容时不会跳出 switch 而是会继续向下执行,直到遇到 break 或者执行完全部代码结束程序才会停止。例子可见上述代码。

??????? default 的作用。我们指导首先要通过 switch (整型表达式) 进入case 语句。如果case的值与表达式的值都不一样怎么办呢? 实际上程序并不会报错,也并不会结束,只是所有语句都被跳过,其实也没什么问题。但是为了程序效果的完整性,可以加入一个 default 子句。 如上述例子中,假设表达式的值为 8 。则会输出 wrong 。 如不设置,程序什么都不输出。


2. 循环语句

??????? 循环语句有 while 、for? 、do while 语句。

2.1 while 循环语句

2.1.1? while 语句的基本语法:

int main()
{
    int i = 10;           // 初始化部分
    while (i < 10)        // 条件判断部分
    {
        printf("%d", i);
        i++;              // 调整部分
    }
}

2.1.2? while 语句中的 continue 和 break

????????1. breakwhile 中的作用。 只要在循环中遇到 break ,就停止后期所有的循环,直接终止循环,跳出循环。

int main()
{
    int i = 10;           // 初始化部分
    while (i < 10)        // 条件判断部分
    {
        if (i == 5)
        {
            break;        // 直接跳出循环,不执行后面代码。
        }
        printf("%d ", i);
        i++;              // 调整部分
    }
}
     // 最后的输出结果为  1 2 3 4 

??????? 2. continuewhile 中的作用。只要在循环中遇到 continue ,就直接跳过后面的代码,回到 while 语句的判断部分。进行下一次循环判断。

int main()
{
    int i = 10;           // 初始化部分
    while (i < 10)        // 条件判断部分
    {
        if (i == 5)
        {
            continue;    // 直接跳到while的判断部分,跳过本次循环,                                
        }                // 进入下次循环,不执行后面代码。
        printf("%d ", i);
        i++;              // 调整部分
    }
}
     // 最后的输出结果为  1 2 3 4 6 7 8 9 

2.2 for 循环语句

2.2.1? for 语句的基本结构?

int main()
{
    int i = 0;                      
    for (i = 1; i < 10; i++)    // 初始化部分   // 条件判断部分  // 调整部分
    {
        printf("%d ", i);
    }
}
//输出结果: 1 2 3 4 5 6 7 8 9 

可知 for 循环 的 初始化部分, 条件判断部分, 调整部分都在一起,结构优于 while 循环,比 while 循环应用的场景更多。

2.2.2? for 循环中的 break 和 continue

?与? while 循环 中效果类似

int main()
{
    int i = 0;                      
    for (i = 1; i < 10; i++)    // 初始化部分   // 条件判断部分  // 调整部分
    {
        if (i == 5)
        {
            break;              //直接跳出循环,不执行后面代码。
        }
        printf("%d ", i);
    }
}
//输出结果: 1 2 3 4 

continue:

int main()
{
    int i = 0;                      
    for (i = 1; i < 10; i++)    // 初始化部分   // 条件判断部分  // 调整部分
    {
        if (i == 5)
        {
            continue;          //跳过后面代码不执行,直接跳到for的判断部分
        }
        printf("%d ", i);
    }
}
//输出结果: 1 2 3 4 6 7 8 9

注意:? 不能再for循环体内修改循环变量, 不然 for 循环可能失去控制 !

2.2.3? for 循环的一些变种

int main()
{
    int i = 0;                      
    for (; ; )    // 初始化部分   // 条件判断部分  // 调整部分
    {
        printf("aa");
    }
}


//
for (; i < 10; i++ )    // 初始化部分   // 条件判断部分  // 调整部分
{
    printf("aa");
}

//
int x = 0;
int y = 0;
for (x = 0, y = 0; x < 2 && y < 5; x++, y++) // 初始化部分   // 条件判断部分  // 调整部分
{
    printf("sa");
}

如上 for 可以省略各个部分。但需注意,省略条件判断部分可能导致死循环。

3.1 do while 循环语句

3.3.1 do while 语句的语法

do
{
    循环语句;
}while (表达式)   //条件判断部分

do while 语句的特点: 循环至少执行一次,所使用的场景有限,不常使用。

循环语句的使用频率:? for > while > do while

3.3.2 do while 语句中的 break 和 continue

break :

int main()
{
    int i = 1;                      
    do
    {
        if (i == 5)
        {
            break;          //跳出循环
        }
        printf("%d ", i);
    }while (i <= 10)           //循环判断部分
}
//输出结果: 1 2 3 4 

?

continue:

int main()
{
    int i = 1;                      
    do
    {
        if (i == 5)
        {
            continue;          //跳过后面代码不执行,直接跳到 do while的判断部分
        }
        printf("%d ", i);
    }while (i <= 10)           //循环判断部分
}
//输出结果: 1 2 3 4 6 7 8 9

?

4.1 goto 语句

4.1.1 goto 语句的基本语法

int main()
{
    int flag;
    int i = 0;
flag:
    while(1)
    {
        i++;
        if (i == 5)
        {
            goto flag;    
        }
    }
    return 0;
}

4.1.2 go 语句的适用场景

????????goto 语句一般不用,因为有时候会打乱原来程序运行的顺序和逻辑性。没有 go 语句也能实现代码效果,但是 go 语句也有自己适用的场景。 比如,可以一次跳出多个循环。在多循环中若出现错误,可以一次性跳出所有循环,对错误进行处理。例子如下代码:

int main()
{
    int flag;
    
    for (...)
    {
        for (...)
        {
            for (...)
            {
                if (disaster)   //发生错误
                    goto flag;
            }
        }
    }

flag:                           //之间跳出多个for循环,来到此处处理问题
    if(disaster)
        //  处理错误


    return 0;
}?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:35:34  更:2022-10-31 11:39:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 3:17:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码