小弟在初学 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系统就报错了..这个问题要怎么解决??小弟是新手,求教..谢谢了

解决方案 »

  1.   

    int x=age/10;输入110,X是11
    输入8,X是0
      

  2.   

    10以下的除以10都是0,0就是default分支了,当然是小屁孩啊
      

  3.   

    难道学switch的时候只想着IF?这个还学什么程序?
      

  4.   

    default是输入有误,不就得了把0到10都写在case里
      

  5.   

    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("青年人");
    case 1:
    case 0:Console.WriteLine("小屁孩");
       break;
       default:Console.WriteLine("输入有误");break;
       
       }
     
      

  6.   

    switch 是用来穷举的,不是用来做区间处理的,我想说,你学习switch 用错了例子。
      

  7.   

     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();
        
      }
      }
      

  8.   

    int x=age/10;输入8
    类型转换 报错
      

  9.   

    有时候就不是不能用switch 只能用if 过去碰到过
      

  10.   

    switch在费事了 用着没IF用着好用