题目
代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _2020030
{
class Program
{
static void Main(string[] args)
{
Random rdm = new Random();
int guess = rdm.Next(0, 101);
Console.WriteLine("猜测一个0到100之间的整数");
int i=1;
bool flag=false;
do
{
Console.WriteLine("第{0}次猜,请输入一个整形数字:",i);
string num = Console.ReadLine();
int j = 0;
if(int.TryParse(num,out j))
{
if(j>guess)
Console.WriteLine("太大");
else if (j < guess)
Console.WriteLine("太小");
else
{
Console.WriteLine("猜对了");
flag = true;
}
}
else
{
Console.WriteLine("请输入整形数字!");
}
i++;
}while(flag!=true);
Console.WriteLine("游戏结束!");
Console.ReadKey();
}
}
}
运行结果
思路
1.C#语言中默认输入的数据类型为string类型,故使用int.TryParse(num,out j)表达式来判断输入的数据类型,这个表达式返回的是bool类型的值,如果成功将num这个值转换为int类型则返回true,否则返回false。如果输入的是整形数字,则这个返回值为true,且把转换后的int类型的值赋给j。故用if语句加上这个表达式来判断用户输入的数据类型。
2.采用flag作为指标加上do-while语句来判断游戏是否继续,如果用户猜对了系统的随机数,则将flag的值被更改,一次循环结束后通过判断flag的值来判断游戏是否结束。