日期:2014-05-18  浏览次数:20870 次

switch语句
小弟在初学 switch语句的时候出现了一个问题。代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SwitchCode
{
  class Program
  {
  static void Main(string[] args)
  {
  Console.WriteLine("请输入您的年龄");
  int age = Convert.ToInt32(Console.ReadLine());
  int x=age/10;
  switch (x) { 
  case 10:
  Console.WriteLine("神一般的存在");
  break;
  case 9:
  case 8:
  case 7:  
  case 6:
  Console.WriteLine("老年人");
  break;
  case 5:
  case 4:
  case 3:
  case 2:
  Console.WriteLine("青年人");
  break;
  default:
  Console.WriteLine("小屁孩");
  break;
  }
  Console.ReadKey();
   
  }
  }
}
当输入110的时候,显示的也是小屁孩,我把
  default:
  Console.WriteLine("小屁孩");
  break;
改成case 1:
 Console.WriteLine("小屁孩");
  break;
输入8系统就报错了..这个问题要怎么解决??小弟是新手,求教..谢谢了

------解决方案--------------------
探讨

我知道,我的问题是要怎样输入10一下的是小屁孩,100以上的输入“输入有误


------解决方案--------------------
default是输入有误,不就得了。。。

把0到10都写在case里
------解决方案--------------------
switch 是用来穷举的,不是用来做区间处理的,我想说,你学习switch 用错了例子。
------解决方案--------------------
static void Main(string[] args)
{
Console.WriteLine("请输入您的年龄");
int age = Convert.ToInt32(Console.ReadLine());
int x=age/10;
switch (x) {
case 10:
Console.WriteLine("神一般的存在");
break;
case 9:
break;
case 8:
break;
case 7:
break;
 
case 6:
Console.WriteLine("老年人");
break;
case 5:
case 4:
case 3:
case 2:
Console.WriteLine("青年人");
break;
 case 1:
Console.WriteLine("小屁孩");
break;
default:
break;
}
Console.ReadKey();

}
}