如何解决用 C# 制作我的第一个计算器,但我卡住了
刚开始学习 C# 和编程,我正在使用 Windows 窗体应用程序项目模板制作一个计算器。我正在尝试让我的计算器像普通计算器一样工作,如果您按 1+1 然后再按 +,它会显示 1+1 的总和并等待下一个数字输入添加到其中。
我点击任何数字按钮的代码是 2^(2^k)=4^k
到目前为止我已经定义了 3 个变量 tb1.Text = tb1.Text + "the number being pressed"
我的“+”按钮onclick代码如下
int num1 = 0; int num2 = 0; int result;
此代码有效,我可以看到它有效,因为我有调试文本框(tb2 和 tb3)和 tb2 显示 我认为 num1 是 = 我要加在一起的数字的总和。我可以添加两个数字然后 添加另一个数字,依此类推。但 id 喜欢显示在 tb1 中的前两个数字的总和 当我再次点击 + 号向它添加另一个数字时。我想我会通过添加来做到这一点
private void button11_Click(object sender,EventArgs e)
{
//Add
if (num1 == 0)
{
num1 = Convert.ToInt32(tb1.Text);
tb1.Clear();
}
else
{
num2 = Convert.ToInt32(tb1.Text);
result = num1 + num2;
tb1.Text = Convert.ToString(result);
num1 = result;
tb1.Clear();
tb2.Text = Convert.ToString(num1);
tb3.Text = Convert.ToString(num2);
}
}
在添加按钮单击方法中的 if 语句之前(在 //Add 注释的正下方)。这反而使什么都没有出现在 调试 tb2 文本框并没有解决我的问题,我不确定为什么。即使我将其解析回 int 正确 在这条新线之后没有任何变化。如果需要更多或更清楚的信息,我将有义务
解决方法
解释this instead makes nothing show up in the debug tb2 textbox and doesn't fix my problem and im unsure why
:
当您在第一个 tb1.Text = Convert.ToString(num1);
语句之前添加 if
时,您会得到以下流程:
- 程序加载。
num1
为 0,tb1.Text
为空 - 用户在
tb1
中输入 5 -
button1_Click
被调用-
tb1.Text
设置为num1
(0) - 进入
if (num1 == 0)
块 -
num1
设置为tb1.Text
(0)
-
- 重复第 2 步和第 3 步
这样,您最终会无休止地将 num1
设置为 0,并且永远不会到达 else
块来设置 tb2.Text
。
与其重置 tb1.Text
开头的 button11_Click
值,您可能只需要删除 tb1.Clear();
块中的 else
。考虑到它是在 tb1.Text = Convert.ToString(result);
之后调用的,该语句没有多大意义。所以代码最终会是:
//Add
if (num1 == 0)
{
num1 = Convert.ToInt32(tb1.Text);
tb1.Clear();
}
else
{
num2 = Convert.ToInt32(tb1.Text);
result = num1 + num2;
tb1.Text = Convert.ToString(result);
num1 = result;
tb2.Text = Convert.ToString(num1);
tb3.Text = Convert.ToString(num2);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。