public static double Count( double variableX, double variableY, string operation )
{
double result; try
{
switch( operation )
{
case "+" :
result = ( variableX + variableY );
break;
case "-" :
result = ( variableX + variableY );
break;
case "*" :
result = ( variableX + variableY );
break;
case "/" :
result = ( variableX + variableY );
break;
default:
;
break; }
return result;
}
catch( DivideByZeroException )
{
MessageBox.Show( "除数不得为零", "出错了", MessageBoxButtons.OK, MessageBoxIcon.Error );
}

}
这是我写的一个计算结果的代码,错误提示是“并非所有代码都返回值”,大家能帮我改一下么?

解决方案 »

  1.   

    default:
    ;
             break;这个地方的问题,如果是在这个情况下返回的话result就没有初始化。在定义时初始化一下,或在default中加个语言。试试看
      

  2.   

    因为如果在try{}块内发生异常,控制会跳过return语句。
    应该写成try{ ... return result;} catch{...} return ...;
      

  3.   

    public static double Count( double variableX, double variableY, string operation )
    {
    double result=0;
    try
    {
    switch( operation )
    {
    case "+" :
    result = ( variableX + variableY );
    break;
    case "-" :
    result = ( variableX + variableY );
    break;
    case "*" :
    result = ( variableX + variableY );
    break;
    case "/" :
    result = ( variableX + variableY );
    break;
    default:
    ;
    break; }
    return result;
    }
    catch( DivideByZeroException )
    {
    MessageBox.Show( "除数不得为零", "出错了", MessageBoxButtons.OK, MessageBoxIcon.Error );
    return result;
    }

    }
      

  4.   

    两个错误
    1.result没有赋初值,在try中返回时报错
    2.catch中也要返回
      

  5.   

    public static double Count( double variableX, double variableY, string operation )
    {
    double result=0; try
    {
    switch( operation )
    {
    case "+" :
    result = ( variableX + variableY );
    break;
    case "-" :
    result = ( variableX + variableY );
    break;
    case "*" :
    result = ( variableX + variableY );
    break;
    case "/" :
    result = ( variableX + variableY );
    break;
    default:
    ;
    break; }
    }
    catch( DivideByZeroException )
    {
    MessageBox.Show( "除数不得为零", "出错了", MessageBoxButtons.OK, MessageBoxIcon.Error );
    }
    return result; //把返回语句写在最后一句。
    }