using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _1008_流程控制语句_switch语句
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入考试分数(0-100的整数):");
int score = Convert.ToInt32(Console.ReadLine());
switch (score / 10)
{
case 10:
Console.WriteLine("满分");
break;
case 9:
Console.WriteLine("优秀");
break;
case 8:
Console.WriteLine("良好");
break;
case 7:
Console.WriteLine("较好");
break;
case 6:
Console.WriteLine("不及格");
break;
}
Console.ReadLine();
//switch语句
//if语句每次判断只能实现两种选择,而switch语句每次判断可以实现多种选择。
//基本语法格式如下:
//switch (controlling - expression)
//{
// case constant - expression:
// { 语句块 }
// 跳转语句(如break、return、goto)
// case constant - expression:
// { 语句块 }
// 跳转语句(如break、return、goto)
// ......
// default:
// { 语句块 }
// 跳转语句
//}
//?controlling-expression:控制表达式。可以是sbyte、byte、short、ushort、int、uint、long、ulong、char、string、enum类型。
//?constant-expression:常数表达式。必须属于或者能隐式转换成控制类型controlling-expression.
//switch关键字后面的表达式计算一次,如果找到和表达式相等的一个常数表达式,就执行case标识的代码块。进入case块之后,程序将一直
//执行,直到遇到break语句结束。如果没有与之相匹配的值,就运行由可选的default标签所标识的语句块。如果没有可选的default标签
//程序会跳过整个switch语句,从它的结束大括号之后的第一个语句继续执行。
//在switch语句中,不允许两个或两个以上的case具有相同的值。(有时候switch语句要比if语句更加简洁)
//技巧:如果要像C、C++那样,执行完一个case字句以后,继续遍历其它的字句,只要加入下面的两条跳转语句即可。
//?goto case label:跳至标签语句执行。
//?goto default:跳至default标签执行。
//例子:
//total = 365;
//switch (month)
//{
// case 1:total -= 31;goto case 2;
// case 2:total -= 28;goto case 3;
// case 3:total -= 30;goto case 4;
//......
// case 12: total -= 31;goto case default;
// default:total += day;
//}
}
}
}