私はC#の初心者です。ここでは基本的なループ計算機(以下のコード)を書いています。ループブレイクとして定義されたプログラムを「終了」すると、31行目に「System.FormatExceptionがスローされました(未知の文字)」というエラーが発生します。誰かがこの意味を説明し、そのようなエラーを避けるためにコードを編集する方法を教えてください。ありがとうございました。このエラーは何を意味しますか?「System.FormatExceptionがスローされました。未知の文字」?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Calculator
{
class Program
{
static void Main(string[] args)
{
// Greeting.
Console.WriteLine ("Welcome to calculator.");
Console.WriteLine ("Enter 'Exit' to stop.");
// Persistent loop with an exit option.
while (true)
{
// Get three input values from user, separated by spaces.
Console.Write ("Input two values with an operation, with spaces between.");
// Get values from user.
string text = Console.ReadLine();
string[] parts = text.Split (' ');
float value1 = Convert.ToSingle (parts [0]);
string operation = parts [1];
float value2 = Convert.ToSingle (parts [2]);
// Loop exit option.
if(text == "exit" || text == "Exit")
break;
// Establish the variable to store the result,
// initialized to zero, to be updated by the computation.
float result = 0;
// Switch between operations depending on the symbol input.
switch (operation)
{
case "+":
result = value1 + value2;
break;
case "-":
result = value1 - value2;
break;
case "*":
result = value1 * value2;
break;
case "/":
result = value1/value2;
break;
case "%":
result = value1 % value2;
break;
case "^":
result = (float)Math.Pow (value1, value2);
break;
default:
Console.WriteLine ("ERROR");
break;
}
// Print out the result.
Console.WriteLine (value1 + " " + operation + " " + value2 + " = " + result);
}
}
}
}
なぜあなたはvar input = Console.ReadLine()で始まっていないのでしょうか?そして、入力の結果をあなたの電卓の "終了"か式で確認してください。あなたは最初のプロンプトは、 "間にスペースを入れた操作で2つの値を入力するか、終了するには 'exit'と入力する必要があります。 –
これは、whileループの最後に、exitの代わりに 'exit'を要求する必要があることを意味します。 – kurakura88
簡単な解決策 - 意味があります、ありがとう! – jarombra