私はこれらの質問がたくさんあることを知っており、私はすべてのものを試しました。このエラーはなぜ出力されますか:not all code paths return a value
?すべてのコードパスが値を返すわけではありません。
const string firstChar = "";
const string lastChars = "";
int x;
const string vowel = "AEIOUaeiou";
は、if文を退治し、オペレータ
var pigLatin = "";
x == -1 ? pigLatin = lastChars + firstChar + "ay" : pigLatin = firstChar + lastChars + "way"
return pigLatin;
を使用して:
が
const
にTransfer
内の変数を変更する:私が試した何using System; namespace PigLatin { public class Translate { public static string Transfer(string input) { string firstChar = ""; string lastChars = ""; int x; string vowel = "AEIOUaeiou"; string[] pieces = input.Split(null); try { foreach (string piece in pieces) { lastChars = piece.Substring(1); firstChar = piece.Substring(0, 1); x = vowel.IndexOf(firstChar); if (x == -1) { var pigLatin = lastChars + firstChar + "ay"; return pigLatin; } else { var pigLatin = firstChar + lastChars + "way"; return pigLatin; } } } catch (Exception e) { Console.WriteLine(e.ToString()); } } static void Main(string[] args) { Console.Write("Enter word to translate: "); var toTranslate = Console.ReadLine(); Console.WriteLine(Transfer(toTranslate)); } } }
何が原因なのですか?
後にreturn文が欠落していますか?コンソールにエラーを書き込み、次に値を返さずに続行します。また、 'pieces'に何もない場合、forループは実行されません。あなたは' return'ステートメントを実行しません。 – Blorgbeard
あなたはリターンステートメントがありません! – Dazzler
また、なぜ「すべてのコードパスが値を返すわけではない」ということは、変数を定数にすることが助けになることを示していますか? – Blorgbeard