私はC#を使用してコードを学習する過程にあります。私は、私のループが私のHangmanプログラムに10回入力した後に終了しない理由を理解できませんでしたが、プログラムは6などのより小さい数に設定しても機能します。do whileループを使用しています。 〜10、私は無限ループであると思われるものを得続けます。コンパイルエラーはありません。これは割り当てです。どんな助けもありがとうございます。私がもし他に10回...ポインタは素晴らしいことだ繰り返していないよようにコードを書くためのより良い方法があるかどうC#DO Whileループ - Hangman
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace hangman_projectW4
{
class Program
{
static void Main(string[] args)
{
//variable list
char letter0 = 'k';
char letter1 = 'i';
char letter2 = 'd';
char letter3 = 'd';
char letter4 = 'e';
char letter5 = 'r';
char letter;
int score = 0;
string user = "";
//inputs inputs
Console.ForegroundColor = ConsoleColor.Green;
user = Console.ReadLine();
Console.WriteLine("Hi! Welcome to Hangman.");
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("Player, please enter a letter at prompt.");
Console.Write("_________________________________________________________________");
user = Console.ReadLine();
Console.ForegroundColor = ConsoleColor.Green;
do
{
Console.WriteLine("Please enter a letter: ");
letter = char.Parse(Console.ReadLine());
user = Console.ReadLine();
if (letter == letter0 || letter == letter1 || letter == letter2 || letter == letter3 || letter == letter4 || letter == letter5)
{
Console.WriteLine("You guessed correctly!");
}
else
{
Console.WriteLine("Incorrect. Try Again.");
score++;
}
user = Console.ReadLine();
Console.WriteLine("Please enter a letter: ");
letter = char.Parse(Console.ReadLine());
user = Console.ReadLine();
if (letter == letter0 || letter == letter1 || letter == letter2 || letter == letter3 || letter == letter4 || letter == letter5)
{
Console.WriteLine("You guessed correctly!");
}
else
{
Console.WriteLine("Incorrect. Try Again.");
score++;
}
user = Console.ReadLine();
Console.WriteLine("Please enter a letter: ");
letter = char.Parse(Console.ReadLine());
user = Console.ReadLine();
if (letter == letter0 || letter == letter1 || letter == letter2 || letter == letter3 || letter == letter4 || letter == letter5)
{
Console.WriteLine("You guessed correctly!");
}
else
{
Console.WriteLine("Incorrect. Try Again.");
score++;
}
user = Console.ReadLine();
Console.WriteLine("Please enter a letter: ");
letter = char.Parse(Console.ReadLine());
user = Console.ReadLine();
if (letter == letter0 || letter == letter1 || letter == letter2 || letter == letter3 || letter == letter4 || letter == letter5)
{
Console.WriteLine("You guessed correctly!");
}
else
{
Console.WriteLine("Incorrect. Try Again.");
score++;
}
user = Console.ReadLine();
Console.WriteLine("Please enter a letter: ");
letter = char.Parse(Console.ReadLine());
user = Console.ReadLine();
if (letter == letter0 || letter == letter1 || letter == letter2 || letter == letter3 || letter == letter4 || letter == letter5)
{
Console.WriteLine("You guessed correctly!");
}
else
{
Console.WriteLine("Incorrect. Try Again.");
score++;
}
user = Console.ReadLine();
Console.WriteLine("Please enter a letter: ");
letter = char.Parse(Console.ReadLine());
user = Console.ReadLine();
if (letter == letter0 || letter == letter1 || letter == letter2 || letter == letter3 || letter == letter4 || letter == letter5)
{
Console.WriteLine("You guessed correctly!");
}
else
{
Console.WriteLine("Incorrect. Try Again.");
score++;
}
user = Console.ReadLine();
Console.WriteLine("Please enter a letter: ");
letter = char.Parse(Console.ReadLine());
user = Console.ReadLine();
if (letter == letter0 || letter == letter1 || letter == letter2 || letter == letter3 || letter == letter4 || letter == letter5)
{
Console.WriteLine("You guessed correctly!");
}
else
{
Console.WriteLine("Incorrect. Try Again.");
score++;
}
user = Console.ReadLine();
Console.WriteLine("Please enter a letter: ");
letter = char.Parse(Console.ReadLine());
user = Console.ReadLine();
if (letter == letter0 || letter == letter1 || letter == letter2 || letter == letter3 || letter == letter4 || letter == letter5)
{
Console.WriteLine("You guessed correctly!");
}
else
{
Console.WriteLine("Incorrect. Try Again.");
score++;
}
user = Console.ReadLine();
Console.WriteLine("Please enter a letter: ");
letter = char.Parse(Console.ReadLine());
user = Console.ReadLine();
if (letter == letter0 || letter == letter1 || letter == letter2 || letter == letter3 || letter == letter4 || letter == letter5)
{
Console.WriteLine("You guessed correctly!");
}
else
{
Console.WriteLine("Incorrect. Try Again.");
score++;
}
user = Console.ReadLine();
Console.WriteLine("Please enter a letter: ");
letter = char.Parse(Console.ReadLine());
user = Console.ReadLine();
if (letter == letter0 || letter == letter1 || letter == letter2 || letter == letter3 || letter == letter4 || letter == letter5)
{
Console.WriteLine("You guessed correctly!");
}
else
{
Console.WriteLine("Incorrect. Try Again.");
score++;
}
}while (score <= 10);
//outputs
user = Console.ReadLine();
user = Console.ReadLine();
Console.Write("_________________________________________________________________");
user = Console.ReadLine();
Console.Write("Guessed Incorrectly: " + score);
Console.ReadLine();
Console.ReadLine();
Console.Write("Thank you for playing Hangman.");
Console.ReadLine();
}
}
}
、また:ここで私が書いてきたコードです!ありがとう。
ようこそ。あなたのコードをすべてここにドロップしないでください。この記事を読む:https://stackoverflow.com/help/mcve最小で、完全で、検証可能なコード例を提供してください。 –
これは、実行時にデバッガでコードをステップ実行する良い機会です。ループ状態が何を確認しているかを覚えておいて、期待どおりにその値を変更するループですか?無限ループの場合、 'score'は常に' <= 10'と思われます。デバッグし、それが期待どおりに変更されていない理由を調べます。 – David