巧妙的用switch代替多个if-else

C++选择结构深度解析:if-else与switch的实战对比与选型指南 在编程中,控制流是程序逻辑的骨架,它决定了代码的执行路径。其核心原理是通过条件判断,让程序在不同情境下做出不同响应,从而实现复杂的业务逻辑。掌握高效、清晰的控制流技术,对于提升代码的可读性、可维护性和执行效率至关重要。if-else语句作为最基础的条件卫士,提供了无与伦比的灵活性,适用于范围判断和复杂逻辑组合;而switch语句则是处理基于整型或枚举的离散多路分支的利器,其结构清晰,且在特定场景下编译器可能生成高效的跳转表进行优化。在实际工程中,例如在游戏开发的状态机或业务逻辑的路由分发场景中,合理选用这两 阅读详情

今天看到某人写的代码一个校验写了一连串if-else

if(){
    
}else if(){

}else if (){

} else {

}

实在是看不下去了

来了解一下switch case的使用

当a+b=3时会执行提示‘3’,打印c

当a+b=4时会执行提示‘4’,不打印c

当a+b=5时代码停止不往下走

当a+b=6时会执行提示'6',打印c,

否则执行提示‘7’,打印c,

巧妙的使用break和return来实现业务需求

        let a = 5,b=2,c=0
        switch (true) {
            case a+b===3: message.success('3'); break;
            case a+b===4: return message.success('4');
            case a+b===5: return; message.success('5'); break;
            case a+b===6: message.success('6'); 
            default:message.success('7');break;
        }
        console.log(c)

 

从零开始掌握Python机器学习:七步教程 基础篇 前言 「开始」往往是最难的,尤其是当选择太多的时候,一个人往往很难下定决定做出选择。本教程的目的是帮助几乎没有 Python 机器学习背景的新手成长为知识渊博的实践者,而且这个过程中仅需要使用免费的材料和资源即可。 第一步:基本 Python 技能 如果我们打算利用 Python 来执行机器学习,那么对 Python 有一些基本的了解就是至关重要的。 首先,你需要安装 Python。因为我们后... 阅读详情

相关推荐

2024最新超详细无痛安装PyTorch,包括下载地址、环境配置与各种避坑指南

PyTorch更新很快,2024最新下载安装经验贴,包括anaconda+CUDA+cuDNN+PyTorch四部分的下载和安装。文章详细介绍了下载地址、环境配置、虚拟环境建立的问题,还温馨提示了各种闭坑指南。有需要的友友快过来康康!

qq_43596278的博客 11万+

c语言if语句改写switch语句,C语言基础:if语句switch语句

示例代码:if else :语句char c;scanf("%c",&c); 输入一个char类型字符赋值给cif('0'<=c&&c<='9') printf("c=%c--->%c",c,'A'); //判断是数字输出Aelse if('A'<=c&a...

weixin_35048609的博客 3517

新手避坑:RT-Thread-Studio外设驱动配置最容易忽略的3个地方(附WDT实例)

本文针对RT-Thread-Studio新手在配置外设驱动时常见的编译报错问题,以看门狗(WDT)为例,详细解析了最易忽略的三个关键配置环节:RT-Thread-Studio的图形化Setting开关、Kconfig中的依赖关系以及SConscript的编译规则。掌握这三层配置模型,能有效避免头文件包含正确却依然编译失败的问题,确保驱动代码被正确加入构建。

gray5的博客 506

C++知识点1:多个if else if,能否替换成switch

switch 语句适用于对一个变量的等值比较,如果条件涉及到两个变量的比较,那么通常不适合使用 switch 语句。总之,如果需要比较多个变量或使用复杂的条件,if-else if 结构可能更合适,而 switch 语句适用于等值比较,并且只适用于单一变量。2、离散值:每个 if-else if 分支中的条件都应该是一些离散的值,而不是范围或复杂的条件。3、等值比较:switch 语句主要用于执行等值比较,即每个分支与变量的值进行比较。1、变量:你需要有一个可以在多个情况下进行比较的变量。

Mike 1467

PowerDesigner16.5下载和安装教程

一、软件下载 1.下载地址(不用复制,直接点击下载链接即可):链接:https://pan.baidu.com/s/1MSnWHWt3SO2Uz5dt9AANAg提取码:z9kk 二、软件安装 1.下载安装包(包含安装文件、汉化包、注册文件) 2.下载后文件内容如下 3....

cicong2374的博客 10万+

脑机接口中的视觉信号解码:原理、技术与应用

脑机接口中的视觉信号解码:原理、技术与应用​ ,人工智能,计算机视觉,大模型,AI,脑机接口(Brain - Computer Interface,BCI)作为一种革命性的技术,致力于搭建人脑与外部设备之间的直接通信桥梁,绕开传统的神经肌肉输出通路。其核心目标是解读大脑活动产生的信号,从而实现对外部设备的精准控制或信息交互。在众多脑机接口研究方向中,视觉信号解码因其独特的优势和广泛的应用前景,吸引了大量科研人员的关注。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 20万+

教你如何优雅的改写“if-else”

摘要:这些场景,你是怎么写的代码? if-else,这是个再正常不过的coding习惯,当我们代码量小的时候用来做条件判断是再简单不过的了。但对于优秀程序员来说,这却不是好代码。 不信你往下看… 1. 卫语句提前return 假设有如下代码 通过对判断条件取反,代码在逻辑表达上会更加清晰 2. 使用Optional简化if判空 2.1 简化1级判空 假设有如下代码 使用Optional后 2.2 简化多级判空 假设有如...

华为云官方博客 1万+

使用Simulink进行带通滤波器的设计与仿真研究

摘要:本文介绍利用Simulink设计和仿真带通滤波器的方法。通过定义系统需求(保留100-500Hz信号),创建包含多频信号源、加法器和巴特沃斯滤波器的模型,重点展示滤波器频率选择特性。详细步骤包括模块配置、参数设置(中心频率300Hz、带宽400Hz)、信号连接及可视化分析。实验验证了带通滤波器有效提取目标频段信号的能力,为复杂信号处理系统开发提供基础框架。所需工具为MATLAB R2023a和DSPSystemToolbox。

xiaoheshang_123的博客 326

switch语句例题

使用switch语句改写下列if语句: int a = 3; int x = 100; if(a1) x+=5; else if(a2) x+=10; else if(a==3) x+=16; else x+=34; package com.company; /** * @lzx * @param args */ public class lzx { public static void main(String[] args) { int a = 3; int

李子翔 994

YOLOv12涨点改进 | 全网独家首发Conv改进篇 | Arxiv 2025 | 引入一种新的WConv加权卷积改进YOLOv12,显著提升其特征提取能力和目标检测精度

本文提出了一种新型加权卷积(WConv)模块,通过引入最优密度函数动态调整邻域像素权重,显著提升了YOLOv12目标检测性能。WConv在保持参数数量不变的情况下,提高了模型精度(VGG准确率提升10%)、增强了小目标检测能力,并改善了多尺度特征提取。文中详细介绍了模块原理、网络结构改进方法,并提供了核心代码实现和yaml配置文件。实验表明,该方法在图像任务中最高可降低53%的损失,虽然会带来11%的时间开销,但具有优异的鲁棒性。该技术可广泛应用于2D/3D图像处理领域。

Ai缝合怪、助力小伙伴高效发论文 215

手把手教你学Simulink——基于Simulink的无感FOC(滑模观测器+PLL)实战

本文详细介绍了基于Simulink的无感FOC(滑模观测器+PLL)实现方法。主要内容包括:1)SMO+PLL原理精讲,阐述滑模观测器核心思想和PLL的作用;2)系统架构全景图展示;3)Simulink建模全流程,从基础FOC框架到SMO和PLL模块的实现;4)关键参数整定指南和工程实践要点;5)仿真结果分析及常见问题解决方案。该方法可有效替代机械传感器,降低成本并提高可靠性,适用于空调压缩机、电动汽车水泵等工业场景。文章还提供了详细的调试建议和动手实践指导。

MHD0815的博客 83

C语言学习_DAY_4_判断语句if_else和分支语句switch_case【C语言学习笔记】

break关键字的使用:break关键字,表示中断的意义。在switch case语句中,每一个case最后都需要有一个break,否则会导致执行该case之后,并不会跳出switch case结构,而是会继续向下执行下一个case,这会导致我们的程序出现意外的错误。例如我们看下面这段代码:

跳探戈的小龙虾的博客 847

Modbus协议学习第一篇之基础概念

因工作需要而接触Modbus,正在恶补知识,利用博客的方式来加深理解和记忆,同时希望同行大佬能一起交流。

hzf978742221的博客 880

JS优化技巧

JS优化技巧1.带有多个条件的if语句2.简化if true ... else3.声明变量4. null、undefined 和空值检查5. null 检查和默认赋值6. if 判断值是否存在7. 比较后返回8. 箭头函数9. switch 简化10. 隐式返回11. 默认参数值12.数组 find 简化 1.带有多个条件的if语句 把多个值放在一个数组中,然后调用数组的 includes 方法。 // Novice if(x === 'abc' || x === 'def' || x === 'x

QVVVVVVVVVVVVVVV的博客 302

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

if…else if…else语句和switch语句简单练习

功能:switch和if else if else练习 从键盘输入: 1.分别用switch和if else if else 语句完成 一个功能: 判断学生的成绩: 100<成绩>=90–>优秀 90<成绩>=80–>良好 80<成绩>=70–>一般 70<成绩>=60–>及格 60<成绩>=0–>不及格 其...

Jar_viS的博客 1595

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

switch和if else

1,switch不加break为什么具有直通性?      switch没有循环,switch功能与if else一样。如果不加break,执行完一个case后还会继续执行下面的case语句,直到遇见break为止。(执行了多个case语句后就会有多个输出结果)2,switch和if else哪个效率更高?switch效率更高。区别:if else要从上至下一层层比较,有点:不限比较类型和内容,可...

lxy_0227的博客 691

ftl if else判断_写 JS 逻辑判断,不要只知道用 if-else 和 switch

我们在编写 JS 代码时,经常会遇到逻辑判断复杂的情况。一般情况下,可以用 if/else 或 switch 来实现多个条件判断,但会出现一个问题:随着逻辑复杂度的增加,代码中的 if/else 和 switch 会越来越臃肿。本文将带你尝试写出更优雅的判断逻辑。比如说下面这样一段代码:const onButtonClick = (status) => { if (status == 1...

weixin_39918682的博客 365

js逻辑只会写if-else或者switch?

我们在编写 JS 代码时,经常会遇到逻辑判断复杂的情况。一般情况下,可以用 if/else 或 switch 来实现多个条件判断,但会出现一个问题:随着逻辑复杂度的增加,代码中的 if/else 和 switch 会越来越臃肿。本文将带你尝试写出更优雅的判断逻辑。 比如说下面这样一段代码: const onButtonClick = (status) => { if (status == 1) { sendLog('processing') jumpTo(‘IndexPage

weixin_43844696的博客 413

【Go语言-Day 8】告别冗长if-else:深入解析 switch-case 的优雅之道

本文是《Go 语言从入门到精通》专栏的第 8 篇,旨在全面、深入地解析 Go 语言中强大的流程控制语句 `switch-case`。我们将从基础语法出发,探讨其相比传统 `if-else` 链的优势,例如默认的 `break` 行为和 `case` 的多值匹配。随后,文章将深入到 `fallthrough` 关键字、无表达式 `switch` 以及 Go 语言独有的 `type switch` (类型断言) 等高级特性。

吴师兄大模型的博客 1502

写 JS 逻辑判断,不要只知道用 if-else 和 switch

我们在编写 JS 代码时,经常会遇到逻辑判断复杂的情况。一般情况下,可以用 if/else 或 switch 来实现多个条件判断,但会出现一个问题:随着逻辑复杂度的增加,代码中的 if/else 和 switch 会越来越臃肿。本文将带你尝试写出更优雅的判断逻辑。 比如说下面这样一段代码: const onButtonClick = (status) => { if (status == 1) { sendLog('processing') jumpTo('IndexPa...

keocce的博客 250

JS 写逻辑判断,不要只知道用 if-else 和 switch

我们在编写 JS 代码时,经常会遇到逻辑判断复杂的情况。一般情况下,可以用 if/else 或 switch 来实现多个条件判断,但会出现一个问题:随着逻辑复杂度的增加,代码中的 if/else 和 switch 会越来越臃肿。本文将带你尝试写出更优雅的判断逻辑。 比如说下面这样一段代码: const onButtonClick = (status) => { if (status == 1) { sendLog('processing') jumpTo('IndexPage')

星之宇的博客 699

ftl if else判断_写 JavaScript 逻辑判断,不要只知道用 if-else 和 switch

我们在编写 JavaScript 代码时,经常会遇到逻辑判断复杂的情况。一般情况下,可以用 if/else 或 switch 来实现多个条件判断,但会出现一个问题:随着逻辑复杂度的增加,代码中的 if/else 和 switch 会越来越臃肿。本文将带你尝试写出更优雅的判断逻辑。比如说下面这样一段代码:const 你可以在代码中看到这个按钮的点击逻辑。根据活动状态的不同做两件事,发送日志埋点并跳转...

weixin_39796140的博客 184

还在用 if-else 堆山?来认识一下 Switch 语句吧!

“还在用 if-else 堆山?Switch 语句帮你把多分支逻辑写得清晰又优雅。本文用最通俗的方式讲透 Switch 的结构、坑点和适用场景,附多语言示例。”

2401_82419694的博客 267

PHP Switch语句详解

通过使用Switch语句实现状态机,我们可以轻松应对复杂的业务流程,如支付处理、工作流管理等。这种方法特别适合处理具有明确状态转换规则的场景,能够有效减少代码的复杂度,同时提高系统的灵活性和可扩展性。

2401_86544677的博客 3573

使用Javascript写逻辑判断,不要只知道用if-else和switch

前言 我们在编写 JavaScript 代码时,经常会遇到逻辑判断复杂的情况。一般情况下,可以用 if/else 或 switch 来实现多个条件判断,但是呢会出现一个问题:随着逻辑复杂度的增加,代码中的 if/else 和 switch 会越来越臃肿、冗余。这篇文章将带你尝试写出更优雅的判断逻辑。 实战 就比如说现在有这么一行代码: const onButtonClick = (status) => { if (status == 1) { sendLog('processing')

yiwai6998的博客 521

CAPL编程技巧:如何用if/else和switch优化车载测试脚本

本文深入探讨了CAPL编程中if/else和switch语句的高级应用技巧,帮助开发者优化车载测试脚本的执行效率和可维护性。通过性能对比和实战案例,展示了switch语句在离散值判断和状态机实现中的优势,以及if/else在连续范围判断中的适用场景,为车载测试提供专业编程指导。

ujm5678901的博客 126
上一篇: JS封装深拷贝函数
下一篇: react里面点击按钮触发复制文本功能
大青花鱼の
博客等级 码龄8年 131粉丝 67原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值