日期:2014-05-17  浏览次数:20688 次

问一个简单问题阿,
想根据i值(Int)不同的区间,来定义ibatch的值(int),用了switch ,但总是说 case i >= 0 && i <= 3000:
不能将布尔类型转换int。为什么啊

C# code

                     switch (ibatch)
                     {
                         case i >= 0 && i <= 3000:
                             ibatch=1;
                             break;
                         case i>3000 && i<=6000:
                             ibatch = 2;
                             break;

                         case i > 6000 && i <= 9000:
                             ibatch = 3;
                             break;

                         case i > 9000 && i <= 12000:
                             ibatch = 4;
                             break;

                         case i > 12000 && i <= 15000:
                             ibatch = 5;
                             break;
                         case i > 15000 && i <= 18000:
                             ibatch = 6;
                             break;

                     }



------解决方案--------------------
switch/case只能用特定值,不能区间,

你这个只能用if/else if/else来写:

if (i >= 0 && i <= 3000)
ibatch=1;
else if (i>3000 && i<=6000)
ibatch = 2;

else if ( i > 6000 && i <= 9000)
ibatch = 3;

else if (i > 9000 && i <= 12000)
ibatch = 4;

else if (i > 12000 && i <= 15000)
ibatch = 5;
else if (i > 15000 && i <= 18000)
ibatch = 6;

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

switch/case只能用特定值,不能区间,

你这个只能用if/else if/else来写:

if (i >= 0 &amp;&amp; i <= 3000)
ibatch=1;
else if (i>3000 &am……