练习题目要求
提示用户输入两个数字 计算这两个数字之间所有整数的和
1.用户只能输入数字
2.计算两个数字之间的和
3.要求第一个数字必须比第二个数字小 否则重新输入
using System;
using System.Reflection.Metadata.Ecma335;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入第一个数字");
string strNumberOne = Console.ReadLine();
int numberOne = GetNumber(strNumberOne);
Console.WriteLine("请输入第二个数字");
string strNumberTwo = Console.ReadLine();
int numberTwo = GetNumber(strNumberTwo);
JudgeNumber(ref numberOne, ref numberTwo);//调用函数内部改变的参数加ref
int sum = GetSum(numberOne, numberTwo);
Console.WriteLine(sum);
}
public static int GetNumber(string s)//用户输入的是字符串类型,方法的作用是先把字符串类型转换为int类型
{
while (true)
{
try
{
int number = Convert.ToInt32(s);//当用户输入的是数字时,转换成功直接返回int类型的值
return number;
}
catch
{
Console.WriteLine("输入有误,请重新输入");//当用户输入的是其他类型的值的时候,会抛出异常,并且让用户重新输入
s = Console.ReadLine();//把整个程序放到循环里,直到用户输入正确的类型,才会跳出循环
}
}
}
public static void JudgeNumber(ref int n1, ref int n2)//作用是判断第一个值和第二个值的大小
{ //注意:这里用ref参数,为了使主函数里的参数能调用到这个函数中,并且再将已经改变的参数再调用出去
while (true)
{
if (n1 < n2)//当第一个值小于第二个值的时候符合题意,return直接跳出循环
{
return;
}
else//当不满足n1>n2时,会出现提示并让用户重新输入,用户输入的第一个值<第二个值才会跳出循环
{
Console.WriteLine("第一个数字不能大于第二个数字,请重新输入第一个数字");
string s1 = Console.ReadLine();
n1 = GetNumber(s1);
Console.WriteLine("请重新输入第二个数字");
string s2 = Console.ReadLine();
n2 = GetNumber(s2);
}
}
}
public static int GetSum(int n1, int n2)//第一个数到第二个数之间的累加求和
{
int sum = 0;
for (int i = n1; i <= n2; i++)
{
sum += i;
}
return sum;
}
}
}