C#实现毕达哥拉斯计算器:如何获取用户输入并封装计算函数
C# 毕达哥拉斯计算器修改方案
核心修改点
- 替换硬编码赋值为控制台用户输入:使用
Console.ReadLine()读取用户输入的字符串内容,通过double.Parse()将输入转换为双精度浮点数赋值给直角边变量,输入前增加文字提示引导用户操作。 - 封装独立计算函数:单独抽取静态计算方法,接收两个直角边长度作为入参,内部实现勾股定理计算逻辑后返回斜边结果,将计算逻辑和主程序的输入输出逻辑解耦。
完整实现代码
using System; public class Pythagorean { // 独立封装的毕达哥拉斯定理计算函数 static double CalculateHypotenuse(double side1, double side2) { return Math.Sqrt(side1 * side1 + side2 * side2); } public static void Main() { double s1; double s2; double hypot; // 替换原有固定赋值,改为接收用户输入 Console.Write("请输入第一条直角边长度:"); s1 = double.Parse(Console.ReadLine()); Console.Write("请输入第二条直角边长度:"); s2 = double.Parse(Console.ReadLine()); // 调用独立函数计算斜边 hypot = CalculateHypotenuse(s1, s2); Console.WriteLine("The length of side c is " + hypot); } }
可选优化(提升鲁棒性)
基础版本直接用double.Parse()转换输入即可,如果需要避免用户输入非数字、负数导致程序崩溃,可以把输入部分替换为带校验的循环逻辑:
Console.Write("请输入第一条直角边长度:"); while (!double.TryParse(Console.ReadLine(), out s1) || s1 <= 0) { Console.Write("输入无效,请输入大于0的合法数字:"); } Console.Write("请输入第二条直角边长度:"); while (!double.TryParse(Console.ReadLine(), out s2) || s2 <= 0) { Console.Write("输入无效,请输入大于0的合法数字:"); }
这段逻辑会持续提示用户重新输入,直到拿到合法的正数值边长,作业提交时增加这段处理会让完成度更高。
内容的提问来源于stack exchange,提问作者Demi Timmer
相关产品推荐
相关产品推荐

