c# - 打破while循环并且不打印结果c#
问题描述
我是 C# 的初学者,我正在训练 codeforces 和 SPOJ 以学习如何解决问题,我的问题是当循环中断时不会打印所有输入它只是结束程序而不打印
请有人能告诉我我写的这两个代码中的错误是什么>
输入:1,2,88,42,99 输出:1,2,88
class Program
{
static void Main(string[] args)
{
Console.WriteLine("please enter an integer number in two digits");
int numbers;
int[] array_num = new int[100];
string nu = "";
int i =1;
while(i<100)
{
numbers = int.Parse(Console.ReadLine());
nu += numbers;
array_num[i] = numbers;
if(array_num[i]<array_num[i-1])
{
Console.WriteLine("the numbers is " +nu+ "");
break;
}
i++;
}
}
}
我在for循环中做同样的问题
static void Main(string[] args)
{
Console.WriteLine("please enter an integer number in two digits");
int numbers;
int[] array_num = new int[50];
string nu = "";
for (int i = 1; i <= array_num.Length; i++)
{
numbers = int.Parse(Console.ReadLine());
nu += numbers;
array_num[i] = numbers;
if (array_num[i] < array_num[i - 1])
{
Console.WriteLine("the number is " + nu + "");
break;
}
}
}
什么是错误?
解决方案
回答“......问题是当循环中断时不会打印所有输入,它只是结束程序......”:
那是因为在你中断循环之后没有更多的代码可以执行 - 所以控制台关闭。您可以在方法末尾添加Console.ReadKey()
或以在循环中断后保持控制台打开。会等到您按下任何键,会等到您输入某些内容并按 Enter 键(或仅按 Enter 键)。或者在这两种方式中,控制台都将保持打开状态,直到您手动关闭它。Console.ReadLine()
Main
Console.ReadKey()
Console.ReadLine()
static void Main(string[] args)
{
// ...
for (int i = 1; i <= array_num.Length; i++)
{
// ...
if (array_num[i] < array_num[i - 1])
{
Console.WriteLine("the number is " + nu + "");
break;
}
}
Console.ReadKey(); // Here Console will wait until you press any key and will stay opened
}
推荐阅读
- sql-server - 由于使用office 365的邮件服务器故障(SQL),邮件无法发送给收件人
- oracle - 如何在Oracle中将`(Ab56.12345)some_string`的一列字符串拆分为两列`Ab.12345`,`some_string`
- excel - Excel Office 365:在 Excel 甘特图中根据多个开始和结束日期标记列
- python-3.x - NLTK 使用自定义语法解析递归错误
- c# - 如何在 C# 中通过 User32.dll 中的任何函数检测鼠标滚轮滚动
- c# - EF 核心中的 SaveChanges() 给出超时错误 - 间歇性问题
- excel - 为什么我的随机数在 Excel 中没有相应变化?
- java - 如何使用 Groovy 表达式在 ADF 中获取 securityContext 属性
- java - 图像上方的文本和图像覆盖的文本之间的区别
- javascript - 使用 vue js 或 chrome 和 firefox 阻止跨域请求