【发布时间】:2018-03-25 01:13:01
【问题描述】:
应用程序:当用户输入数据时,我正在尝试将一种距离转换为另一种距离。但是,我的英寸到码和英寸到英尺的输出给我的逻辑错误为 0,而不是期望计算。英尺到码没有给我任何输出,码到码也在做同样的事情。我一直试图弄清楚 2 个小时,似乎无法理解。语法正确,逻辑与其他欲望输出相同。
我的代码:
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 Distance_Converter
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void ConvertButton_click(object sender, EventArgs e)
{
int distance_to_convert;
string lengthOption1;
string lengthOption2;
int feet = 12;
lengthOption1 = FromListBox.SelectedItem.ToString();
distance_to_convert = int.Parse(distancetoconvertTextBox.Text);
if ((FromListBox.SelectedIndex) != 1 && (ToListBox.SelectedIndex) != -1)
lengthOption1 = FromListBox.SelectedItem.ToString();
lengthOption2 = ToListBox.SelectedItem.ToString();
{
switch (lengthOption1)
{
case "Inches":
if (lengthOption2 == "Inches")
{
ConvertedDistanceTextBox.Text = distance_to_convert.ToString();
}
else if (lengthOption2 == "Feet")
{
int inches_feet = distance_to_convert / feet;
//int feet = 12;
ConvertedDistanceTextBox.Text = inches_feet.ToString();
}
else if (lengthOption2 == "Yards")
{
int inches_yard = distance_to_convert / 36;
ConvertedDistanceTextBox.Text = inches_yard.ToString();
}
break;
case "Feet":
if (lengthOption2 == "Inches")
{
int feet_inches = distance_to_convert * 12;
ConvertedDistanceTextBox.Text = feet_inches.ToString();
}
else if (lengthOption2 == "Feet")
{
ConvertedDistanceTextBox.Text = distance_to_convert.ToString(); ;
}
else if (lengthOption2 == "Yards")
{
float feet_yard = distance_to_convert / 3;
ConvertedDistanceTextBox.Text = feet_yard.ToString();
}
break;
case "Yards":
if (lengthOption2 == "Inches")
{
int Yards_inches = distance_to_convert * 36;
ConvertedDistanceTextBox.Text = Yards_inches.ToString();
}
else if (lengthOption2 == "Feet")
{
int Yards_feet = distance_to_convert * 3;
ConvertedDistanceTextBox.Text = Yards_feet.ToString();
}
else if (lengthOption2 == "Yards")
{
ConvertedDistanceTextBox.Text = distance_to_convert.ToString(); ;
}
break;
}
}
}
private void Exitbutton_click(object sender, EventArgs e)
{
this.Close();
}
}
}
【问题讨论】:
-
你在 distancetoconvertTextBox 中输入了什么值?
-
它应该可以工作。在您的部门使用
double所以/ 36.0而不是/ 36 -
这行“ if ((FromListBox.SelectedIndex) != 1 && (ToListBox.SelectedIndex) != -1)” 应该都为 -1,还是你真的想拒绝 if FromListBox 的索引为 1?
-
@ForeverZer0- 好点,我删除了它,它仍然输出逻辑错误。这很奇怪,因为代码的其他部分有效。
-
@CodingYoshi 我试过了,但它仍然给我某些部分的逻辑错误。
标签: c# string if-statement logic