原题目:循环录入5个人的年龄并计算平均年龄,如果录入的数据出现负数或大于100的数,则立即停止输入并报错。
个人感觉这个解题思路的重点不在于循环语句的使用,不在于范围的判定,而是在于标签的使用,之前学VB时也使用过标签,但当时并没有现在这么深刻的体会,可能是因为自己想问题时,思考点卡在如何判定是否有误上面了吧,当看到小杨老师使用flag标签时,顿时恍然大悟,原来标签如此神奇,这样便对标签的使用有了深刻的映像。
此题的代码如下:
int sum= 0; //定义年龄总和,并赋予其初始值
int age = 0; //定义年龄
bool flag = false; //定义一个布尔值的flag标签
for (int i = 1; i <=5 ; i++) //1-5for循环
{
Console.WriteLine("请输入年龄"); //在控制台上写入内容:请输入年龄
string strage = Console.ReadLine(); //读取控制台上的内容,并将其赋予给字符串变量strage
bool result = int.TryParse(strage, out age); //采用tryparse方法来进行类型转换,它的值是布尔值
if(result) //如果result的结果为true则执行以下循环
{
if (age > 0 && age <= 100) //如果输入的年龄大于0且小于等于100
{
sum+=age ; //那么sum=sum+age
}
else //如果年龄超出范围,那么则执行以下内容
{
Console.WriteLine("您输入的数值超过范围"); //提示用户输入数值超过范围
flag = true; //遇到错误是flag标签开启
break; //跳出此循环
}
}
else //否则,提示用户输入错误
{
Console.WriteLine("您输入的类型有误");
flag = true; //遇到错误是,标签显示
break; //跳出该循环
}
}
if(flag==true)
{
Console.WriteLine("程序结束");
Console.ReadKey();
}
else
{
Console.WriteLine("平均年龄为{0}", sum / 5); //在控制台上写入内容:平均年龄为年龄总和sum除以5
Console.ReadKey();
}