2016-03-08 57 views
-2

晚安。我试图用选项制作一个控制台计算器,但是当我运行该程序时,它永远不会停止应该停止的地方。如何在C#上工作

它应该停在第一中频。我知道一点java。我在那里做一个这样的程序并且运行得很好,我希望有人能帮助我。谢谢。

using System; 

namespace Learning002 { 

class MainClass { 
    public static void Main (string[] args) { 
     Console.Beep(); 
     Console.Beep(); 

     double num1 = 0; 
     double num2 = 0; 
     double resultado = 0; 
     //string escolhaString = null; 
     //int escolha = int.Parse (escolhaString); 
     int escolha; 

     Console.WriteLine ("Write the value of the operation: "); 
     Console.WriteLine ("1) +"); 
     Console.WriteLine ("2) -"); 
     Console.WriteLine ("3) X"); 
     Console.WriteLine ("4) /"); 
     Console.WriteLine ("0) Exit."); 

     escolha = Console.Read(); 

     if (escolha != 0) { 

      Console.WriteLine ("Write the first value: "); 
      num1 = Console.Read(); 


      Console.WriteLine ("Write the second value: "); 
      num2 = Console.Read(); 

      if (escolha == 1) { 
       resultado = (num1 + num2); 

      } else if (escolha == 2) { 
       resultado = num1 - num2; 
      } else if (escolha == 3) { 
       resultado = num1 * num2;  
      } else if (escolha == 4) { 
       resultado = num1/num2; 
      } 
     } 
     Console.WriteLine ("The result is: " + resultado); 
    } 
} 

}

+1

什么 “它永远不会停止,它应该停止” 的意思,请详细说明。它目前做了什么,以及它与你期望的做法有何不同?此外,[阅读此](http://stackoverflow.com/questions/6825943/difference-between-console-read-and-console-readline)。 –

+0

不要忘记在阅读后明确地转换变量。确定停止的位置。 – Vadim

+1

如果您使用的是Console.Read()并按下“1”,则此值为49而不是1. –

回答

1

尝试输入整数使用int.Parse(到Console.ReadLine()); 我认为在这种模式下你的代码将起作用。 :)

using System; 
namespace ConsoleApplication1 
{ 
class MainClass 
{ 
    public static void Main(string[] args) 
    { 
     Console.Beep(); 
     Console.Beep(); 

     double num1 = 0; 
     double num2 = 0; 
     double resultado = 0; 
     //string escolhaString = null; 
     //int escolha = int.Parse (escolhaString); 
     int escolha; 


     Console.WriteLine("Write the value of the operation: "); 
     Console.WriteLine("1) +"); 
     Console.WriteLine("2) -"); 
     Console.WriteLine("3) X"); 
     Console.WriteLine("4) /"); 
     Console.WriteLine("0) Exit."); 

     escolha = int.Parse(Console.ReadLine()); 

     if (escolha != 0) 
     { 

      Console.WriteLine("Write the first value: "); 
      num1 = int.Parse(Console.ReadLine()); 


      Console.WriteLine("Write the second value: "); 
      num2 = int.Parse(Console.ReadLine()); 

      if (escolha == 1) 
      { 
       resultado = (num1 + num2); 

      } 
      else if (escolha == 2) 
      { 
       resultado = num1 - num2; 
      } 
      else if (escolha == 3) 
      { 
       resultado = num1 * num2; 
      } 
      else if (escolha == 4) 
      { 
       resultado = num1/num2; 
      } 
     } 
     Console.WriteLine("The result is: " + resultado); 
    } 
} 

}