【发布时间】:2023-03-22 06:09:01
【问题描述】:
所以为了上课,我必须用 C# 制作一个小 BMI 计算器,但我遇到了一些麻烦。
所以我有 2 个文本框,weightTxt 用于体重,heightTxt 用于身高,但我似乎无法获得用户输入的值,我可以将其用于 If-else 语句。
这是我将字符串转换为 int 所做的:
int weight = Int32.Parse(weightTxt.Text);
int height = Int32.Parse(heightTxt.Text);
在我看来,我认为这应该将每个框中的任何文本转换为 int 值,不是吗?
另外,附带问题,在 If 语句中为什么我不能用 Int 做这样的事情
if (weight >= 300 || weight <= 10)
{
MessageBox.Show("Input not acceptable");
}
非常感谢,是的,我很菜鸟,请帮助我:)
编辑:这就是我的整个 .cs 的样子
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
}
private void label2_Click(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
int weight = Int32.TryParse(weightTxt.Text);
int height = Int32.TryParse(heightTxt.Text);
if (weight >= 300)
{
MessageBox.Show("Input not acceptable");
}
else
{
//do nothing?
}
}
}
}
【问题讨论】:
-
您的代码看起来不错。也许它在用户输入之前就被调用了。
-
解析weightTxt和heightTxt时是否收到错误?
-
这段代码什么时候执行?点击按钮还是什么?
-
您必须提供更多代码才能获得有用的答案。听起来像是一个范围界定问题
-
'这应该将每个框中的任何文本转换为 int 值',错误,如果不是数字字符串(它包含非数字字符),将尝试将其转换为整数会抛出异常。