点击打开链接
一般形式:
switch(表达式){
case 常量表达式1: 语句1;case 常量表达式2: 语句2;
…
case 常量表达式n: 语句n;
default: 语句n+1;
}
意思是先计算表达式的值,再逐个和case 后的常量表达式比较,若不等则继续往下比较,若一直不等,则执行default后的语句;若等于某一个常量表达式,则从这个表达式后的语句开始执行,并执行后面所有case后的语句。
与if语句的不同:If语句中若判断为真则只执行这个判断后的语句,执行完就跳出if语句,不会执行其他if语句;
而switch语句不会在执行判断为真后的语句之后跳出循环,而是继续执行后面所有case语句。在每一case语句之后增加break 语句, 使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。
例题:
期末班长小Q决定将剩余班费X元钱用于购买若干支钢笔进行奖励.商店里有三种钢笔,单价分别为6元、5元
和4元.小Q想购买尽量多的笔(奖励尽量多的同学),并且不剩余钱.帮小Q制定出一种买笔的方案.(提示:因为要奖励尽量多的同学,用X元整除最便宜钢笔价格4可能得出余数0、1、2、3,再根据四种余数情况分别判断三种笔各有多少支.)
#include<iostream>
using namespace std;
int main()
{int a,b,c;//6 5 4元的笔int x;cin>>x;c=x/4;//4元的笔最多购买数目 int y=x%4;//购买完c只4元的笔后剩余的钱数 switch(y)//判断购买方案 {case 0:a=0;b=0;break;case 1:a=0;b=1;c--;break;//5 case 2:a=1;b=0;c--;break;//6case 3:a=1;b=1;c-=2;break; //5 6} cout<<a<<" "<<b<<" "<<c<<endl;return 0;
}