我是一個極端的初學者,只學了幾天,所以如果這是一個明顯的問題,請原諒。
我試圖使用ReadLine()讓用戶輸入一個字串(石頭、布或剪刀),然后使用if陳述句給一個同名的變數分配一個數字1-3,然后回傳以脫離該陳述句,然后在Main()中寫入該值。我在這里做了第一個,因為如果它對一個人不起作用,就沒有必要再做其他的了。
VS Code的錯誤資訊是
沒有給出與'RockPaperScissors.Method()'所需的形式引數'choice'相對應的引數
。
而且
并不是所有的代碼路徑都會回傳一個值
。
我忘記/誤解了什么?
我忘記/誤解了什么?
using System;
class RockPaperScissors
{
static int Method()
{
string playerString = Console.ReadLine();
int rock = 1;
if (playerString == "rock")
{
int choice = rock;
return choice。
}
}
static void Main()
{
int Move = Method();
Console.WriteLine(Move)。
}
uj5u.com熱心網友回復:
正如錯誤中提到的,你的代碼只處理了一個用例,其余的用例都沒有回傳一個整數。 這可能有助于:
static int Method()
{
var playerString = Console.ReadLine()。
switch (playerString)
{
case "Rock"/span>:
return 1;
case "Paper":
return 2;
case "Scissors":
return 3;
default:
//當輸入資料不是之前的字串之一。
//它拋出了一個例外,所以它應該被捕捉和處理。
throw new Exception("非有效輸入")。
}
uj5u.com熱心網友回復:
或者,通過使用一個enum使代碼更容易閱讀:
public enum HandSign
{
石頭, //石頭打敗剪刀。
紙,//paper beats rock。
剪刀,//剪刀勝過紙。
}
這就使得:
public staticHandSign GetUserChoice()。
{
HandSign result = default;
bool isCorrectEntry = false;
while (!isCorrectEntry)
{
Console.Write(@"輸入選擇(石頭/剪子/布)。")。)
var enteredText = Console.ReadLine()。
isCorrectEntry = Enum.TryParse<HandSign>( enteredText, ignoreCase:true, out result);
}
return result。
}
注意,它將一次又一次地提示你,直到你正確地拼出scissors。 它還會忽略輸入文本的大小寫。
uj5u.com熱心網友回復:
static int Method()
{
string playerString = Console.ReadLine();
int rock = 1;
if (playerString == "rock")
{
int choice = rock;
return choice。
}
return rock;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/314477.html
標籤:
上一篇:參與者R的Ifelse陳述句
