int month=4,count=15000;//假定取值
float z;
float bl[][]={{0.35f,0.29f,0.22f,0.14f},{0.5f,0.45f,0.4f,0.35f},{0.6f,0.55f,0.5f,0.45f},{0.8f,0.75f,0.7f,0.65f},{1.2f,1.16f,1.13f,1.11f}};
{
if (count>=20000)

{
if (month<=3&&month>=1)
{
z=bl[0][0];
}
else if (month<=6&&month>=4)
{
z=bl[0][1];
}
else if (month<=9&&month>=7)
{
z=bl[0][2];
}
else 
{
z=bl[0][3];
}
System.out.print("基数工资为"+z*count);
}
else if (count>=14000&&count<20000)
{
if (month<=3&&month>=1)
{
z=bl[1][0];
}
else if (month<=6&&month>=4)
{
z=bl[1][1];
}
else if (month<=9&&month>=7)
{
z=bl[1][2];
}
else 
{
z=bl[1][3];
}
System.out.print("基数工资为"+z*count);
}
else if (count>=9000&&count<14000)
{
if (month<=3&&month>=1)
{
z=bl[2][0];
}
else if (month<=6&&month>=4)
{
z=bl[2][1];
}
else if (month<=9&&month>=7)
{
z=bl[2][2];
}
else 
{
z=bl[2][3];
}
System.out.print("基数工资为"+z*count);
}
else if (count>=5000&&count<9000)
{
if (month<=3&&month>=1)
{
z=bl[3][0];
}
else if (month<=6&&month>=4)
{
z=bl[3][1];
}
else if (month<=9&&month>=7)
{
z=bl[3][2];
}
else 
{
z=bl[3][3];
}
System.out.print("基数工资为"+z*count);
}
else
{
if (month<=3&&month>=1)
{
z=bl[4][0];
}
else if (month<=6&&month>=4)
{
z=bl[4][1];
}
else if (month<=9&&month>=7)
{
z=bl[4][2];
}
else 
{
z=bl[4][3];
}
System.out.print("基数工资为"+z*count);
}
}

解决方案 »

  1.   


    int month=4,count=15000;//假定取值
    float z;
    float bl[][]={{0.35f,0.29f,0.22f,0.14f},{0.5f,0.45f,0.4f,0.35f},{0.6f,0.55f,0.5f,0.45f},{0.8f,0.75f,0.7f,0.65f},{1.2f,1.16f,1.13f,1.11f}};int countType = getCountType(count);
    z = getZValue(month, countType, bl);
    System.out.print("基数工资为" + z * count);private int getCountType(int count) {
        if (count >= 20000)
            return 0;
        else if (count >= 14000 && count < 20000)
            return 1;
        else if (count >= 9000 && count < 14000)
    return 2;
        else if (count >= 5000 && count < 9000)
    return 3;
        else
    return 4;
    }private float getZValue(int month, int countType, float[][] bl) {
        if (month <= 3 && month >= 1)
    return bl[countType][0];
        else if (month <= 6 && month >= 4)
    return bl[countType][1];
        else if (month <= 9 && month >= 7)
    return bl[countType][2];
        else
    return bl[countType][3];
    }
      

  2.   

    //把选择放在一个方法里面封装起来就可以简化了
    public class test3
    {   
    private static float bl[][]={{0.35f,0.29f,0.22f,0.14f},
    {0.5f,0.45f,0.4f,0.35f},{0.6f,0.55f,0.5f,0.45f},
    {0.8f,0.75f,0.7f,0.65f},{1.2f,1.16f,1.13f,1.11f}};    public static void main(String[] args) {
         int month=4,count=15000;//假定取值
         if(count>=20000)
         jianHua(month , count , 0);
         else if(count>=14000)
         jianHua(month , count , 1);
         else if(count>=9000)
         jianHua(month , count , 2);
         else if(count>=5000)
         jianHua(month , count , 3);
         else
         jianHua(month , count , 4);
        
    }
        
        public static void jianHua(int month ,int count , int i) {
         float z = 0 ;
         if (month<=3&&month>=1)
         {
         z=bl[i][0];
         }
         else if (month<=6&&month>=4)
         {
         z=bl[i][1];
         }
         else if (month<=9&&month>=7)
         {
         z=bl[i][2];
         }
         else 
         {
         z=bl[i][3];
         }
         System.out.print("基数工资为"+z*count);
         }
    }
        
      

  3.   

    如果不想用else if
    那么就建议使用case
    case给人的感觉直观