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 的相关文章

  • python中switch语句用法

    python中是没用switch语句的 xff0c 这应该是体现python大道至简的思想 xff0c python中一般多用字典来代替switch来实现 coding utf 8 from future import division d
  • C 语言中的SWITCH—CASE 语句陷阱

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

    NET 中C 的switch语句的语法如下 switch xff0c case和default是关键字 xff1a switch controllingExpression case constantExpression statement
  • switch语句作用在byte上却不能作用在String和long上

    在switch xff08 exprl xff09 语句中 xff0c exprl必须是一个整数表达式或者枚举常量 而byte short char都可以隐式转换为int类型 xff0c 整数表达式可以是int或者包装类Integer xf
  • C/C++/C#是否支持基于string的switch-case??

    C C 43 43 只支持整型值 用字符常量也可以 但编译器事实上也是把字符常量量转化成了整型值的 其实 xff1a C C 43 43 支持 int 和char xff0c switch语句中的case只能是常量 是整型 字符或枚举三种
  • "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?

    参考资料 xff1a https blog lmlphp com archives 437 PHP 7 3 classic error continue targeting switch 找到代码那一行 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
  • JavaScript中Switch语句的使用方法

    除了if else之外 xff0c JavaScript还有一个称为switch语句的功能 switch是一种条件语句 xff0c 它将针对多种可能的情况评估表达式 xff0c 并根据匹配的情况执行一个或多个代码块 switch语句与包含许
  • 安装centos7 报错[FAILED] Failed to start Switch Root. see 'systemctl status initrd-switch-root.service' ...

    背景 xff1a 在VMware上安装虚拟机 系统 xff1a CentOS 7 x86 64 Minimal 1804 目前最新的版本 报错截图 xff1a 在安装步骤就报错 xff0c 说明要么是硬件问题 xff0c 要么是系统文件有问
  • switch-case使用方法

    switch case 语句判断一个变量与一系列值中某个值是否相等 xff0c 每个值称为一个分支 switch case 语句语法格式如下 xff1a switch语句应用举例1 xff1a public class VariableTe
  • nRF52 Mesh开发 (2) SDK例程Light_switch server 添加一个element控制开发板其他LED灯

    server文件结构 xff1a 使用SEGGER编译的话直接打开 emProject文件即可 xff1b img文件中包含程序运行过程图 xff1b include文件包含该例程下的头文件 xff1b 2 具体操作 xff1a 在main
  • 用switch语句实现简单的取款机程序

    大家好 今天给大家分享一个简单的取款机程序 相关函数 switch语句 分支语句 case语句 分支条件 break语句 结束循环 default语句 其他分支 演示效果 试试存款 存款成功 再试试取款 取款也成功 代码部分 源文件名 ma
  • Java运算符、流程控制

    Java运算符 流程控制 运算符 算术运算符 public class Demo1 public static void main String args 算术运算符 int x 2046 x x 100 100 System out pr
  • Java当中判断学生成绩等级的方法

    前言 使用两种方式来判断学生成绩的等级 第一种 if else if else来判断 第二种 使用switch语句来判断 一 if else if else来判断 代码如下 示例 import java util Scanner 题目 使用
  • react-jsx语法上使用switch匹配不同渲染组件

    这里主要讲的是jsx语法使用switch 的js语句 一般jsx语法执行的是简单的运算和三元表达式 如果想要执行条件判断如if语句和switch语句以及函数等 直接使用是会报错的 这里应该使用函数立即执行的语法写法 如果需要根据不同判断渲染
  • uniapp switch按钮的使用

    switch使用官方文档 https uniapp dcloud io component switch 想要改变switch按钮的大小
  • 在switch语句中使用字符串以及实现原理

    对于Java语言来说 在Java 7之前 switch语句中的条件表达式的类型只能是与整数类型兼容的类型 包括基本类型char byte short和int 与这些基本类型对应的封装类Character Byte Short和Integer
  • java中switch语句用法详解

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

随机推荐