c# - 循环语法中的 C# 错误
问题描述
这是我想做的事情:
- 用户输入一个起始值
- 输入最后一个值
- 程序询问用户是要向上计数到最后一个值还是向下计数
- 用户响应和程序(增加值类型(I),增加值类型(I))
示例:通过 (fac=-1) 从 (Num1=10) 到 (Num2=1) 倒计时
预期结果:
Welcome To The Counter System
==============================
Enter the first number: 10
==============================
Enter the last number: 1
==============================
**To Increase The Value Type (I)**
**To Decrease The Value Type (D)**
D
==============================
Enter The Factor: 1
==============================
RESULT
10
9
8
7
6
5
4
3
2
1
我的代码:
static void Main(string[] args)
{
Console.WriteLine("Welcome To The Counter System");
Console.WriteLine("==============================");
Console.Write("Enter the first number: ");
decimal Num1 = Convert.ToDecimal(Console.ReadLine());
Console.WriteLine("==============================");
Console.Write("Enter the last number: ");
decimal Num2 = Convert.ToDecimal(Console.ReadLine());
Console.WriteLine("==============================");
Console.WriteLine("**To Increase The Value Type (I)**");
Console.WriteLine("**To Decrease The Value Type (D)**");
char Op = Convert.ToChar(Console.ReadLine());
if (Op == 'I' || Op == 'i')
{
Console.Write("Enter Increment Factor : ");
decimal fac = Convert.ToDecimal(Console.ReadLine());
for (decimal beg = Num1; Num2 >= Num1; beg = Num1 + fac)
{
Console.WriteLine(beg);
break;
}
}
if (Op == 'D' || Op == 'd')
{
Console.Write("Enter Ddecrement Factor : ");
decimal fac = Convert.ToDecimal(Console.ReadLine());
Console.WriteLine("==============================");
Console.WriteLine("RESULT");
for (decimal beg = Num1; Num2 <= Num1; beg = (Num1 - fac))
{
Console.WriteLine(beg);
break;
}
}
}
}
}
解决方案
这个问题很模糊,因为您并没有首先解释您的期望。但是,如果您希望使用 fac 变量作为 for 循环的结果来增加 Num1 的值,我确实看到 for 循环有问题:
您不会使用 fac 变量增加 Num1 。您需要在 for 循环中添加一条语句来增加 Num1 的值。
带有“beg = Num1 + fac”的部分防止 beg 变量递增。例如,如果 Num1 的值为 0.0m(十进制值),而 fac 的值为 1.1m,则 beg 的值将始终保持为 1.1m。这违背了 for 循环依赖于防止无限循环的增量器的目的。
这是更新的代码。为了简单起见,我确实删除了输入功能:
decimal Num1 = 0.0m;
decimal Num2 = 2.2m;
char Op = 'I';
if (Op == 'I' || Op == 'i')
{
decimal fac = 1.1m;
for (decimal beg = Num1; beg <= Num2; beg += fac)
{
Console.WriteLine("Value of beg is: " + beg);
Num1 = beg;
Console.WriteLine("Value of Num1 has been updated to: " + Num1);
}
}
推荐阅读
- java - 如何在java中获取原始对象检查器的字段名称
- c - 使用在运行时设置的变量来指定字符数组的大小
- build.gradle - Gradle sync failed: CreateProcess error=2, 系统找不到指定的文件
- c++ - 右键单击文档图标时如何获取上下文菜单项列表
- .net - 授权 Web 应用程序的用户并允许他们访问 API 服务
- elasticsearch - 比较两个数字字段elasticsearch
- nativescript - ScrollView 内带有 ngFor 的 StackLayout
- c++ - 在 C++ 中连接两个字符
- selenium - 无法在并行模式下执行套件
- php - 联系表格 7 将数据传递给 Ajax 谢谢你的消息