如何编写C#代码实现一次性输入三个数值并打印输出?
一次性输入三个数字的实现方案
你可以通过读取用户输入的整行文本,按分隔符拆分后转换为整数,实现一次性获取三个数字,无需重复三次询问。修改后的代码如下:
using System; namespace ConsoleApp1 { public class Program { public static void Main(string[] args) { Console.WriteLine("请输入三个数字(用空格分隔): "); // 读取整行输入并按空格拆分,自动移除空项 string[] inputParts = Console.ReadLine().Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries); int[] arr = new int[3]; for (int i = 0; i < 3; i++) { // 将拆分后的字符串转换为整数存入数组 arr[i] = Convert.ToInt32(inputParts[i]); } // 一次性输出所有数字 Console.WriteLine("你输入的三个数字是: " + string.Join(", ", arr)); } } }
关键逻辑说明:
Console.ReadLine():一次性读取用户输入的整行内容,替代原代码中循环多次读取单行的操作Split(...):按空格拆分输入文本,StringSplitOptions.RemoveEmptyEntries参数可以过滤掉用户输入的连续空格或首尾空格产生的空字符串string.Join(", ", arr):将数组中的数字用逗号加空格拼接成字符串,实现一次性输出所有结果
容错优化版本(可选)
如果需要处理用户输入不符合要求的情况(比如输入非数字、数量不足三个),可以添加异常判断逻辑,避免程序崩溃:
using System; namespace ConsoleApp1 { public class Program { public static void Main(string[] args) { Console.WriteLine("请输入三个数字(用空格分隔): "); string[] inputParts = Console.ReadLine().Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries); // 先判断输入数量是否符合要求 if (inputParts.Length != 3) { Console.WriteLine("请输入恰好三个数字!"); return; } int[] arr = new int[3]; bool isValidInput = true; // 逐个验证并转换输入内容 for (int i = 0; i < 3; i++) { if (!int.TryParse(inputParts[i], out arr[i])) { Console.WriteLine($"第{i+1}个输入不是有效的数字!"); isValidInput = false; break; } } if (isValidInput) { Console.WriteLine("你输入的三个数字是: " + string.Join(", ", arr)); } } } }
内容的提问来源于stack exchange,提问作者Hanwi
相关产品推荐
相关产品推荐

