大量if else的程序优化建议
程序需要大量的这种if 程序代码:
if ( == 0) { setXAxis(20); } if (() == 1 ) { setXAxis(50); } else if (() == 2) { setXAxis(100);
我觉得很麻烦,但是新手没啥可优化的方案,看看大佬们怎么解决这个问题!
程序是俺写的,后面可能也是我在改,一想到后面我要是看这个大量if 就很烦
求大佬们意见。
#include "pico_6_0.h" #include<Qchartview.h> #include<qdebug.h> #include<cstdlib> #include<qtimer.h> using namespace QtCharts; pico_6_0::pico_6_0(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); spc_one = new SPC; // combobox_x改变索引时,改变坐标系 connect(,QOverload<int>::of(&QComboBox::currentIndexChanged),this,&pico_6_0::on_comboBox_x_currentIndexChanged); chart->addAxis(mAxY, Qt::AlignLeft); chart->addAxis(mAxX, Qt::AlignBottom); //将图表绑定到视图 ui.datawidget->setChart(chart); } void pico_6_0::on_comboBox_x_currentIndexChanged(int index) { if (() == 0) { setXAxis(20); } else if (() == 1 ) { setXAxis(50); } else if (() == 2) { setXAxis(100); } else if (() == 3) { setXAxis(200); } } //设置X轴,参数为总刻度 void pico_6_0::setXAxis(int x_scale) { if (x_scale < qPow(10,3)) { x_title = "ns"; } else if (x_scale < qPow(10,6) && x_scale >= qPow(10, 3)) { x_title = "us"; x_scale = x_scale / 1000; } mAxX->setTitleText(x_title); mAxX->setRange(0, x_scale); mAxX->setTickCount(11); }