1

この部分はどういうわけか私には難しいです。他のすべてはうまく機能しますが、入力が> = 2の場合、それが再質問する場所に到達する方法を理解できないようです...

if (minimumSides >= 2)

私はこの部分を手に入れましたが、それは嫌いですminimumsides >= 2.

do
{
    Console.Write("Enter minimum number of sides >2: ");
    int.TryParse(inputminside, out minimumSides);                               
    if (minimumSides >= 2)
        Console.Write("Enter minimum number of sides >2: ");
    else
        inputminside = Console.ReadLine();
}
while (!int.TryParse(inputminside, out minimumSides));
4

4 に答える 4

3

あなたはほとんどそこにいます:

do {
    Console.Write("Enter minimum number of sides >2: ");
    inputminside = Console.ReadLine();
} while (!int.TryParse(inputminside, out minimumSides) || minimumSides < 2);
于 2012-10-14T12:31:20.580 に答える
0

問題は、ループの最初の反復中に「inputminside」が初期化されていないことでしょうか?

于 2012-10-14T12:31:25.047 に答える
0

これはあなたがそれをすることができる1つの方法です:

var minimumSides  = 0;

while (minimumSides <=2)
{
    Console.Write("Enter minimum number of sides >2: ");
    int.TryParse(Console.ReadLine(), out minimumSides);
}

// carry on with your code here...
于 2012-10-14T12:33:29.410 に答える
0

これはあなたが望むものです-

do
{
   Console.Write("Enter minimum number of sides >2: ");
   inputminside = Console.ReadLine();
}
while (!int.TryParse(inputminside, out minimumSides) && minimumSides < 2);
于 2012-10-14T12:33:38.463 に答える