switch中的i++与++i

2023-05-16

for(语句1;语句2;语句3)

在上式for循环的语句3中,i++与++i都是在完成一次循环后执行,无论使用哪一种,输出结果都是一样的。因为i++是在使用当前值之后再+1,所以会需要一个临时变量来转储,而i++则直接+1,不存在这样的问题。所以在不使用release优化而使用debug版本的时候我们可以使用i++以提高性能。而在编译器优化后两者都一样。

而在switch中,i++与++i是否也是一样的呢?

为了展示验证程序运行中经过了哪些语句,我们在每一个case分支的输出语句中指出了程序经过的分支。

#include<stdio.h>
int main()
{    
int s=6;
switch(s++)
{ case 6:printf("\n%d by case6",s);
  case 7:s+=2;printf("\n%d by case7",s);
  case 8:printf("\n%d by case8",s);
  case 9:s+=2;printf("\n%d by case9",s);
}
printf("\nresult = %d",s);
     return 0;
}

这里的是第一个程序的输出结果
由程序运行结果可以推测得知:
程序先进入到case 6,然后s自增1得到7,之后输出为7;
这之后没有break语句,各个case语句被依次执行,最终得到s=11。

#include<stdio.h>
int main()
{    
int s=6;
switch(++s)
{ case 6:printf("\n%d by case6",s);
  case 7:s+=2;printf("\n%d by case7",s);
  case 8:printf("\n%d by case8",s);
  case 9:s+=2;printf("\n%d by case9",s);
}
printf("\nresult = %d",s);
     return 0;
}

此处为第二个程序的输出结果
由程序运行结果可以推测得知:
首先s自增1得到7,程序进入到case 7,之后输出为7;
这之后没有break语句,各个case语句被依次执行,最终得到s=11。

由实验结果,我们可以得知:switch (i++) 会先执行分支判断再自增;switch(++i) 会先自增再执行判断。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

switch中的i++与++i 的相关文章

  • 重构——使用多态替换switch

    好吧 xff0c 我这个菜鸟确实是常常在用面向过程的思想在考虑问题 xff0c 在编写程序 现在我已经摈弃了自己对java语言个人的偏见 xff0c 而是用平等公平的态度看待java和C 43 43 他们各有千秋 xff0c 各有乾坤的 好
  • C 语言中的SWITCH—CASE 语句陷阱

    C 语言中 xff0c 如果case语句下不加 代码作用域是不允许定义变量的 xff0c 但是我发现有一种方法可以规避这条原则 请看下面的代码 xff1a 在主流的编译器环境下测试过不限制编译告警的情况下 xff0c Visual Stud
  • C# switch语句

    一 C switch语句 if语句每次判断只能实现两种选择 xff0c 而switch语句每次判断可以实现多种选择 基本语法格式如下 xff1a switch controlling expression case constant exp
  • amiibo数据_Switch自制Amiibo解锁集齐所有卡贴成就

    任天堂在2014年6月E3展上发布了Amiibo xff0c 即内置近场通信NFC芯片的手办 Amiibo 英文 xff1a Amiibo xff0c 日文 xff1a xff0c 用在Wii U 任天堂3DS和任天堂Switch上 xff
  • if/switch的区别

  • OpenFlow Switch Specification 1.3.0 (三)

    六 OpenFlow 安全通道 xff08 OpenFlow Channel xff09 OpenFlow 通道是连接每一个交换到控制器的接口 通过这个接口 xff0c 控制器配置和管理交换机 xff0c 从交换机接收事件 xff0c 向交
  • 【5G核心网】free5GC Path Switch Request源码分析

    Path Switch Request 过程的目的是请求将 NG U 传输承载的下行链路终结点切换到新的终结点 Figure 8 4 4 2 1 Path switch request successful operation NG RAN
  • python中switch语句用法

    python中是没用switch语句的 xff0c 这应该是体现python大道至简的思想 xff0c python中一般多用字典来代替switch来实现 coding utf 8 from future import division d
  • Linux 下 i2c switch(选路芯片mux) — pca9548

    作者 xff1a 韩大卫 64 吉林师范大学 现有的关于i2c switch 资料非常少 即使阅读完官方的datasheet 也不能写出完全正确的操作 因为内核中的驱动本身不是那么完善的 还有一些资料是单片机编程的 xff0c 可惜在lin
  • switch case语句用法详解

    switch 开关 的意思 xff0c 是一种 选择 语句 xff0c 它用法非常简单 switch 是多分支选择语句 说得通俗点 xff0c 多分支就是多个 if语句的组合 从功能上说 xff0c switch 语句和 if 语句完全可以
  • switch case语句的用法

    switch case语句的用法 我们首先来看一下switch case 语句的一般形式是怎样的 span class token keyword switch span xff08 表达式 xff09 xff5b span class t
  • switch-case使用方法

    switch case 语句判断一个变量与一系列值中某个值是否相等 xff0c 每个值称为一个分支 switch case 语句语法格式如下 xff1a switch语句应用举例1 xff1a public class VariableTe
  • switch...case...和if...else...区别

    switch 和 if 都是用来处理分支语句的 那么使用的时候 考虑到代码效率问题 就必须先来了解他们有什么区别 先来看看这两个语句的使用格式 if else if 表达式1 语句1 else if 表达式2 语句2 else if 表达式
  • 用switch语句实现简单的取款机程序

    大家好 今天给大家分享一个简单的取款机程序 相关函数 switch语句 分支语句 case语句 分支条件 break语句 结束循环 default语句 其他分支 演示效果 试试存款 存款成功 再试试取款 取款也成功 代码部分 源文件名 ma
  • MII接口及应用

    MII是英文Medium Independent Interface的缩写 翻译成中文是 介质独立接口 该接口一般应用于以太网硬件平台的MAC层和PHY层之间 MII接口的类型有很多 常用的有MII RMII SMII SSMII SSSM
  • Java当中判断学生成绩等级的方法

    前言 使用两种方式来判断学生成绩的等级 第一种 if else if else来判断 第二种 使用switch语句来判断 一 if else if else来判断 代码如下 示例 import java util Scanner 题目 使用
  • Java分支语句

    一 键盘输入数据 1 导入java util Scanner包 语句import java util Scanner 这句话要放在class定义的上面 2 创建对象 语句 Scanner sc new Scanner System in 3
  • uniapp switch按钮的使用

    switch使用官方文档 https uniapp dcloud io component switch 想要改变switch按钮的大小
  • Android Switch控件修改样式

    Android中自带的Switch控件在很多时候总觉得和整体系统风格不符 很多时候 自定义Switch是一种方法 但其实不用这么麻烦 安卓自带的Switch通过修改一些属性 也可以达到和自定义Switch差不多的一个效果 个人感觉 Swit
  • java中switch语句用法详解

    1 switch语句的基本语法 int week switch week week为定义的变量 case case 之后使用空格再加 满足week的值 执行语句 当满足此case 中的条件时 所要执行的语句 case 执行语句 defaul

随机推荐