2017-03-02 74 views
-6
static void Main(string[] args) 
    { 
     double a, b, c, Result; 
     while (true) // and is good idea to use while to keep backing to main ?? 
     { 
       Console.WriteLine("\t\t\t\t\t\t\tCalcualtor"); 
       Console.WriteLine("\t\t\t\t\t\t\t----------"); 
      Console.WriteLine("put Number Plz"); 
      a = Convert.ToInt32(Console.ReadLine()); 
      Console.WriteLine("put other Number Plz"); 
      b = Convert.ToInt32(Console.ReadLine()); 
      Console.WriteLine("Choose :*,+,-,/"); 
      string uservalue = Console.ReadLine(); 
      if (uservalue == "*") 
      { 
       Result = a * b; 
       Console.Write("Resultat= " + a * b); 
      } 
      else if (uservalue == "+") 
      { 
       Result = a + b; 
       Console.Write("Resultat= " + (a + b)); 
      } 
      else if (uservalue == "-") 
      { 
       Result = a - b; 
       Console.Write("Resultat= " + (a - b)); 
      } 
      else if (uservalue == "/") 
      { 
       Result = a/b; 
       Console.Write("Resultat= " + (a/b)); 
      } 
      else 
       Console.WriteLine("put right operator !!!"); 

//我需要在这里开始我已经做过的所有事情意味着循环即时仍然新与C#任何建议?完成计算后保持循环

  Console.ReadLine(); 
      Console.Clear(); 
     } 
    } 
} 

}

好这个问题,我问它的时间以前,我不知道很多关于C#所以我已经解决它

+3

我没有看到一个问题呢,只是一串代码。另外,不要使用'goto' – BradleyDotNET

+0

问题是在别的我需要回到控制台用户值,所以我怎么做? – Elmissouri

+0

这不是一个连贯的问题。您已经打印了计算结果... – BradleyDotNET

回答

0

其现在的工作完美

static void Main(string[] args) 
    { 
     double a, b,Result; 
     while (true) 
     { 
      Console.WriteLine("\t\t\t\t\t\t\tCalcualtor"); 
      Console.WriteLine("\t\t\t\t\t\t\t----------"); 
      Console.WriteLine("put Number Plz"); 
      a = Convert.ToInt32(Console.ReadLine()); 
      Console.WriteLine("put other Number Plz"); 
      b = Convert.ToInt32(Console.ReadLine()); 
      Console.WriteLine("Choose :*,+,-,/"); 
      bool successful; 
      do 
      { 
       string uservalue = Console.ReadLine(); 
       if (uservalue == "*") 
       { 
        Result = a * b; 
        Console.Write("Resultat= " + a * b); 
        successful = true; 
       } 
       else if (uservalue == "+") 
       { 
        Result = a + b; 
        Console.Write("Resultat= " + (a + b)); 
        successful = true; 
       } 
       else if (uservalue == "-") 
       { 
        Result = a - b; 
        Console.Write("Resultat= " + (a - b)); 
        successful = true; 
       } 
       else if (uservalue == "/") 
       { 
        Result = a/b; 
        Console.Write("Resultat= " + (a/b)); 
        successful = true; 
       } 
       else 
       { 
        Console.WriteLine("put right operator !!!"); 
        successful = false ; 
       } 


       } 
      while (!successful); 
      { 
      Console.ReadLine(); 
      Console.Clear(); 
      } 

      } 
     }  
    } 
} 
0

如果你正在寻找一个完全新手的解决方案,您可能要提高对手术成功的标志,而包装操作员输入到另一个循环:

bool successful; 
do 
{ 
    string uservalue = Console.ReadLine(); 
    if (uservalue == "*") 
    { 
     Result = a * b; 
     Console.Write("Resultat= " + a * b); 
     successful = true; 
    } 
    //other operators 
    else 
     Console.WriteLine("put right operator !!!"); 
} while (!successful) 

此外,我会建议开关/箱sonstruction,这样的:

string uservalue = Console.ReadLine(); 
switch (uservalue) 
{ 
    case "*": 
     Console.Write("Resultat= " + (a * b)); 
     break; 
    //other operators 
    default: 
     Console.WriteLine("put right operator !!!"); 
     break; 
} 

PS:你要指定当值的变量“结果”,而第二个输出字符串时,如果你已经在你的变量有值计算你的价值观两次,一次,你应该叫Console.Write("Resultat= " + Result);

+0

我很好尝试添加到我的代码我欣赏帮助 – Elmissouri

0

我想创建函数来读取用户输入:

static double GetNumber(string prompt) { 
    double answer; 
    Console.WriteLine(prompt); 
    while (true) { 
     if (double.TryParse(Console.ReadLine(), out answer)) { 
      return answer; 
     } 
     Console.WriteLine("Error: Try again"); 
    } 
} 
static string GetOperator(string prompt) { 
    string answer; 
    Console.WriteLine(prompt); 
    while (true) { 
     answer = Console.ReadLine(); 
     if ("*/+-".Contains(answer)) { 
      return answer; 
     } 
     Console.WriteLine("Error: Try again"); 
    } 
} 

然后你的主变:

static void Main(string[] args) 
{ 
    while (true) 
    { 
     Console.WriteLine("\t\t\t\t\t\t\tCalcualtor"); 
     Console.WriteLine("\t\t\t\t\t\t\t----------"); 
     double a = GetNumber("put Number Plz"); 
     double b = GetNumber("put other Number Plz"); 
     string uservalue = GetOperator("Choose :*,+,-,/"); 
     if (uservalue == "*") 
     { 
      Console.Write("Resultat= " + a * b); 
     } 
     else if (uservalue == "+") 
     { 
      Console.Write("Resultat= " + (a + b)); 
     } 
     else if (uservalue == "-") 
     { 
      Console.Write("Resultat= " + (a - b)); 
     } 
     else if (uservalue == "/") 
     { 
      Console.Write("Resultat= " + (a/b)); 
     } 
     Console.ReadLine(); 
     Console.Clear(); 
    } 
+0

我很好,谢谢你的帮助 – Elmissouri