2015-05-24 76 views
-3

Queston的回答感謝我做了多種方法一碼中的一類,但是當我嘗試運行它,它說預期類,委託,枚舉,接口或結構

預期的類,委託,枚舉,接口或結構

上的兩個方法,不是主要的方法。我四處閱讀,發現有人遇到同樣的問題,並且案例是方法不在課堂上。但無法弄清楚如何解決這個問題。有小費嗎?

PS:我是相當新的編碼;)

using System; 

namespace Testing 
{ 
    public class Calculator 
    { 
     public static void Main (string[] args) 
     { 
      string answer; 

      Console.WriteLine ("Would you like to divide or multiply? Type your choice."); 

      Start: 
      answer = (Console.ReadLine()); 

      if (answer == "multiply") 
      { 
       MultiplyingMethod; 
      } 
      { 
       else if (answer == "divide") 
       { 
        DividingMethod; 
       } 
      } 
      else 
      { 
       Console.WriteLine ("Please type multiply or divide."); 

       goto Start; 
      } 
     } 
    } 

    public static void DividingMethod() 
    {   
     double num01; 
     double num02; 

     Console.Write ("Enter a number to be divided"); 
     num01 = Convert.ToInt32 (Console.ReadLine()); 
     Console.Write ("Enter a number to divide by"); 
     num02 = Convert.ToInt32 (Console.ReadLine()); 

     Console.WriteLine (num01 + " divided by " + num02 + " is equal to " + num01/num02); 

     Console.WriteLine (""); 
     Console.ReadKey(); 
    } 
    public static void MultiplyingMethod() 
    { 
     double num01; 
     double num02; 

     Console.Write ("Enter a number to be multiplied"); 
     num01 = Convert.ToInt32 (Console.ReadLine()); 
     Console.Write ("Enter a numeber to multiply by"); 
     num02 = Convert.ToInt32 (Console.ReadLine()); 

     Console.WriteLine (num01 + " multiplied by " + num02 + " equals " + num01 * num02); 

     Console.WriteLine (""); 
     Console.ReadKey(); 
    } 
} 

}

+0

好像你需要檢查括號 – Grundy

+0

這裏:轉到開始; } } } public static void DividingMethod() – matcheek

+2

omg,goto ...D: – khlr

回答

0

你應該調用的方法有()。

Write MultiplyingMethod();而不是MultiplyingMethod();和 DividingMethod();而不是DividingMethod;

public static void Main(string[] args) 
     { 
      string answer; 

      Console.WriteLine("Would you like to divide or multiply? Type your choice."); 

     Start: 
      answer = (Console.ReadLine()); 

      if (answer == "multiply") 
      { 
       MultiplyingMethod(); 
      } 
      else if (answer == "divide") 
      { 
       DividingMethod(); 
      } 
      else 
      { 

       Console.WriteLine("Please type multiply or divide."); 

       goto Start; 
      } 

     } 
     public static void DividingMethod() 
     { 
      double num01; 
      double num02; 

      Console.Write("Enter a number to be divided"); 
      num01 = Convert.ToInt32(Console.ReadLine()); 
      Console.Write("Enter a number to divide by"); 
      num02 = Convert.ToInt32(Console.ReadLine()); 

      Console.WriteLine(num01 + " divided by " + num02 + " is equal to " + num01/num02); 

      Console.WriteLine(""); 
      Console.ReadKey(); 

     } 
     public static void MultiplyingMethod() 
     { 
      double num01; 
      double num02; 

      Console.Write("Enter a number to be multiplied"); 
      num01 = Convert.ToInt32(Console.ReadLine()); 
      Console.Write("Enter a numeber to multiply by"); 
      num02 = Convert.ToInt32(Console.ReadLine()); 

      Console.WriteLine(num01 + " multiplied by " + num02 + " equals " + num01 * num02); 

      Console.WriteLine(""); 
      Console.ReadKey(); 

     } 

另外,不要使用goto,它不好!

1

工作版本:

public static void Main(string[] args) 
{ 
    string answer; 

    Console.WriteLine("Would you like to divide or multiply? Type your choice."); 

    while (true) 
    { 
     answer = (Console.ReadLine()); 

     if (answer == "multiply") 
     { 
      MultiplyingMethod(); 
      break; 
     } 
     else if (answer == "divide") 
     { 
      DividingMethod(); 
      break; 
     } 
     else 
     { 
      Console.WriteLine("Please type multiply or divide."); 
     } 
    } 
} 

public static void DividingMethod() 
{ 
    Console.Write("Enter a number to be divided"); 
    double num01 = Convert.ToInt32(Console.ReadLine()); 
    Console.Write("Enter a number to divide by"); 
    double num02 = Convert.ToInt32(Console.ReadLine()); 

    Console.WriteLine(num01 + " divided by " + num02 + " is equal to " + num01/num02); 

    Console.WriteLine(""); 
    Console.ReadKey(); 
} 

public static void MultiplyingMethod() 
{ 
    double num01; 
    double num02; 

    Console.Write("Enter a number to be multiplied"); 
    num01 = Convert.ToInt32(Console.ReadLine()); 
    Console.Write("Enter a numeber to multiply by"); 
    num02 = Convert.ToInt32(Console.ReadLine()); 

    Console.WriteLine(num01 + " multiplied by " + num02 + " equals " + num01*num02); 

    Console.WriteLine(""); 
    Console.ReadKey(); 
} 
  • 呼叫與像MultiplyingMethod();,而不是MultiplyingMethod;沒有參數的方法。那是沒有效的C#
  • 請不要使用goto。它使你的代碼混亂。看看loops
+0

感謝您的幫助;)我今天學到了一些新東西 – Thusten

0

有幾個問題與此代碼:

  • 調用函數應該用語法來完成:funcname的(PARAMS)。所以​​成爲DividingMethod();
  • 儘量不要使用goto語句(這聽起來很容易,但使你的代碼真的很難閱讀和調試)
  • 太多括號

如果(答案==「正片疊底」) { MultiplyingMethod; } { else if(answer ==「divide」) { DividingMethod; }}

應該是:

if (answer == "multiply") 
{ 
    MultiplyingMethod(); 
} 
else if (answer == "divide") 
{ 
    DividingMethod(); 
} 
相關問題