2017-02-08 12 views
-2

私は温度変換プログラムを作成しています。最後の部分をどのように行うかを理解できません。このプログラムでは、ユーザは華氏から摂氏または摂氏から華氏への変換を選択できます。入力が変換される前に表示する

これまでのコードです。

case "1": 
    System.Console.Write("Please enter the Celsius temperature: "); 
    F = TemperatureConverter.CelsiusToFahrenheit(System.Console.ReadLine());     
    System.Console.WriteLine("Celsius is {0:F2} Fahrenheit", F); 
    break; 

ユーザーが華氏コンバータに摂氏に1を入力した場合今、それが出力さ
"Celsius is 33.80 Fahrenheit"
になります私は、出力は私がちょうどできない
"1 Celius is 33.80 Fahrenheit"

を表示したいですFを変換する前にユーザーが同じ行に入力した内容を表示する方法

あなたが変数に入力した結果を格納する必要が
+2

あなたがReadLineメソッド(から得られた値を格納する必要があります)へのあなたがそれを表示することができるようになります... –

答えて

3

string input = Console.ReadLine(); 

あなたは、その使用する:あなたは、検証されなければならない

F = TemperatureConverter.CelsiusToFahrenheit(input);     
System.Console.WriteLine("{0} Celsius is {1:F2} Fahrenheit", input, F); 

サイドノートをユーザの入力を受け取り、のような例外をスローしないようにTryParseメソッドを使用します。また、ユーザ入力がintであると仮定しているので、ユースケースに関連する検証を使用してください。

int parsedInput; 
if (!Int32.TryParse(input, out parsedInput)) 
{ 
    //Handle invalid input here. 
} 

C#7.0では、以下のことが可能であることに注意してください。

if (!Int32.TryParse(input, out int parsedInput)) 
1
case "1": 
       System.Console.Write("Please enter the Celsius temperature: "); 
       String userInput = System.Console.ReadLine(); 
       System.Console.Write(userInput); 
       F = TemperatureConverter.CelsiusToFahrenheit(userInput);     
       System.Console.WriteLine(" Celsius is {0:F2} Fahrenheit", F); 
       break; 
3

注:あなたはまた、(それが数値だかどうかを確認)あなたの入力を検証する必要があります。

int enteredValue; 
if(int.TryParse(System.Console.ReadLine(), out enteredValue); 
{ 
    //Check if enteredValue has been set to your needs ! 
    //Store your converted Value 
    double convertedValue = TemperatureConverter.CelsiusToFahrenheit(enteredValue); // I assume double here .. 
    //Display the result on your console: 
    System.Console.WriteLine($"{enteredValue} Celsius is {convertedValue} Fahrenheit"); 
} 
else { /*Handle wrong input here*/ } 
+0

入力を検証することについての注意は重要ですが、メソッドが入力として文字列を取りますので、私はそれが必要な検証をすると信じています。メソッドの外部で検証を行う方がおそらく良いでしょう。あなたが 'TryParse'を使用することを検証しようとしている場合、' Parse'を使用しても意味がありません。ただ例外をスローします。 – TheLethalCoder

+0

あなたは正しいです。私はちょうどそれを言いたいと思った。 –

+0

それは私が今私の答えにそれを追加したことを言及しても間違いない! – TheLethalCoder

0

あなたがする必要があるのは変数にユーザー入力を保存して、あなたの書き込み線の文でそれにアクセスしています。

case "1": 
     System.Console.Write("Please enter the Celsius temperature: "); 
     var userInput = System.Console.ReadLine();    
     F = TemperatureConverter.CelsiusToFahrenheit(userInput);     
     System.Console.WriteLine($"{userInput} Celsius is {0:F2} Fahrenheit", F); 
     break; 
0

またはその代わりに、余分なVARを使用して、あなたはあなたが行うことができ、後に華氏にするFを必要としません:

case "1": 
    System.Console.Write("Please enter the Celsius temperature: "); 
    F = System.Console.ReadLine();     
    System.Console.WriteLine("{0} Celsius is {1:F2} Fahrenheit", F, TemperatureConverter.CelsiusToFahrenheit(F)); 
    break; 
+1

これは 'F'がそれが疑わしい文字列であると仮定します – TheLethalCoder

関連する問題