[C]中switch条件选择的用法详解
时间:2014-07-22 00:56 来源: 我爱IT技术网 作者:山风
在C语言中,若要让程序有不同的执行流程,除了可以用if之外,还可以用switch,而且更为容易!switch结构简单又分明,非常适合拿来判断多项条件是否成立,不必项if一样,每行都要完整的条件式,switch只要输入一个条件变量就够了!
switch的结构如下:
- switch (条件运算式)
- {
- case 常数运算式:
- 叙述区;
- break; //中断switch,这是必须的,否则会造成一些错误。
- case 常数运算式:
- 叙述区;
- break; //中断switch,这是必须的,否则会造成一些错误。
- default: //如果条件都没有符合以上数值,就执行这个,这个区块可有可无。
- 叙述区;
- }
switch的动作很简单,第一行的条件运算式可为一变量,在此以整数x为例。程序会一一判断x是否与大括号内的case后接的常数运算式数值相同,如果相同,则执行该case的叙述区块。若x都不符合case的数值,则无条件执行default叙述,若无default,则直接退出switch。switch很简单,但要注意的是,执行完任何case叙述区后并不自动结束switch区块,所以叙述区的最后必须使用break叙述结束switch区块,否则它会继续向下执行其他的case叙述区和default叙述区。
练习
写一简单的加、减、乘、除运算器。输入为两个整数,接着输入"+"、"-"、"*"、"/" (不含双引号)分别做不同的运算,先输入为第一个运算元,后输入为第二个运算元,顺序不可调换,而且要可连续计算,输入";"(不含引号)则重头开始(即要再重新输入两个整数)。
程序范例:
- #include<iostream>
- using namespace std;
- int main()
- {
- int a,b; //a为第一运算元;a为第二运算元
- char letter; //letter为运算符号
- while(true) //无穷循环
- {
- cout << "请输入两个整数:" ; //提示输入信息
- cin >> a >> b; //输入a,b
- cout << "a=" << a << " b=" << b << endl; // 输出a,b值
- cout << "a、b二数请问要做甚么运算?+,-,*,/ 输入;重新计算。请输入:";
- while(cin>>letter&&letter!=';') //输入letter,但letter不等于";"
- {
- switch (letter) //letter变量储存的字符为条件
- {
- case '+': //若letter='+'
- cout << a << letter << b << "=" << a+b << endl; //输出a+b结果
- cout << "a、b二数请问要做甚么运算?+,-,*,/ 输入;重新计算。请输入:";
- break; //中断switch,这是必须的,否则会造成一些错误。
- case '-': //若letter='-'
- cout << a << letter << b << "=" << a-b << endl; //输出a-b结果
- cout << "a、b二数请问要做甚么运算?+,-,*,/ 输入;重新计算。请输入:";
- break; //中断switch,这是必须的,否则会造成一些错误。
- case '*': //若letter='-'
- cout << a << letter << b << "=" << a*b << endl; //输出a-b结果
- cout << "a、b二数请问要做甚么运算?+,-,*,/ 输入;重新计算。请输入:";
- break; //中断switch,这是必须的,否则会造成一些错误。
- case '/': //若letter='/'
- cout << a << letter << b << "=" << a/b << endl; //输出a-b结果
- cout << "a、b二数请问要做甚么运算?+,-,*,/ 输入;重新计算。请输入:";
- break; //中断switch,这是必须的,否则会造成一些错误。
- default: //若都不符合+ - * /或 ; ,则 ...
- cout << "运算符号有误,请重新输入:"; //重新输入提示
- }
- }
- }
- return 0;
- }
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
