2017-08-04 29 views
0

我不知道爲什麼我的程序關閉之前,我寫數字(在計算選項)。標籤有什麼問題。有人幫忙?非常遺憾。這對你來說一定很容易。我的程序關閉之前,我寫數字(計算選項)

class Program 
{ 
    static void Main(string[] args) 
    { 
     string str; 
     double parametrA, parametrB, parametrC; 
     Console.Write("Chose a option: \n"); 
     Console.Write("calculating - calculating square equation \n"); 
     Console.Write("series - even or odd \n"); 
     Console.Write("exit - close program \n"); 
     Console.ReadKey(); 
     while (true) 
     { 
      str = Console.ReadLine(); 
      if (str == "calculating") 
      { 
       goto label1;      
      } 
      else 
      { 
       if (str == "series") 
       { 
        goto label2; 
       } 
       else 
       { 
        if (str == "exit") 
        { 
         goto label3; 
        } 
       } 
      } 

     label1: 
      Console.WriteLine("calculating: \n"); 
      Console.WriteLine("enter parameters: \n"); 



      if (args.Length < 3) 
      { 
       Console.WriteLine("not enaught data \n"); 
       return; 
      } 
      try 
      { 
       parametrA = Double.Parse(args[0]); 

       parametrB = Double.Parse(args[1]); 

       parametrC = Double.Parse(args[2]); 

//我shuld做一個console.readkey()?

  } 
      catch (Exception) 
      { 
       Console.WriteLine("One of the parameters isnt a correct number! "); 
       return; 
      } 
      Console.WriteLine("Introduced equation parameters: \n"); 
      Console.Write("Parametr A = " + parametrA + "Parametr B = " + parametrB + "Parametr C = " + parametrC + "\n"); 
      if (parametrA == 0) 
      { 
       Console.WriteLine("It isn't a square equation! "); 
      } 
      else 
      { 
       double delta = parametrB * parametrB - 4 * parametrA * parametrC; 
       double score; 
       if (delta < 0) 
       { 
        Console.WriteLine("Delta < 0! "); 
       } 
       else if (delta == 0) 
       { 
        score = -parametrB/(2 * parametrA); 
        Console.WriteLine("x = " + score); 
       } 
       else 
       { 
       score = (-parametrB + Math.Sqrt(delta))/(2 * parametrA); 
       Console.WriteLine("x1 = " + score); 
       score = (-parametrB - Math.Sqrt(delta))/(2 * parametrA); 
       Console.WriteLine("x2 = " + score); 
       } 

      } 

如果我分開標籤,我不能編輯。

  label2: 
       Console.WriteLine("odd numbers : \n"); 
       for (int i = 1; i <= 10; i++) 
       { 
        if (i % 2 != 0) 
         Console.WriteLine(i); 
        else 
         Console.WriteLine("even!"); 
       } 

這個標籤工作正確
LABEL3: Console.WriteLine( 「退出\ n」);如果(str ==「退出」) { break; }

 } 
    } 
} 

}

回答

0

下讀取程序的命令行參數的參數(args數組到main方法傳遞。

parametrA = Double.Parse(args[0]); 
parametrB = Double.Parse(args[1]); 
parametrC = Double.Parse(args[2]); 

你可能想在這裏是什麼的readLine電話就像你以前用過的一樣。

編輯:至於編譯問題。請發佈一個格式正確的完整沒有編譯的代碼示例,也會發布編譯器錯誤,因爲它很可能會說代碼出了什麼問題。

+0

好的,謝謝你。我嘗試更多... – SebiX