C# wpf 文本框 while

C# wpf textbox while

我正在制作一个 WPF 程序来确定制作一定数量的面包需要多少小时。

我需要用户输入

并且它应该给出面包已经烘烤了多少小时以及该小时烘烤的容量的结果,因此对于容量为 50 的 130 片面包,结果将是

1-50
2-50
3-50

我认为问题出在我的 while 循环中,但我不确定问题出在哪里。 目前我没有得到想要的输出,尽管程序可以编译。

private void btnStart_Click(object sender, RoutedEventArgs e)
{
    int Bread = 0;
    int Capacity = 0;
    int Time = 0;
    int InitialTime = 0;
    Bread = int.Parse(txtBread.Text);
    Time = int.Parse(txtTime.Text);
    InitialTime = int.Parse(txtInitialTime.Text);
    Capacity = int.Parse(txtCapacity.Text);

    while (Bread > 0)
    {
        if (Bread > Capacity)
        {
            Bread -= Capacity;
            txtResult.Text = txtResult.Text + "\n" + (Bread - Capacity).ToString();
            InitialTime += Time;
            txtResult.Text = txtResult.Text + "\n" + (Bread - Capacity ).ToString(); 
        }

        else
        {
            Bread -= Capacity;
            txtResult.Text += Bread.ToString(); 
            InitialTime += Time;
        }
}

谢谢大家:)

好的,我知道你已经问过这个问题了,我试图帮助你,但你的问题太难理解了,我显然没有。

所以 while 循环看起来不错,但结果没有意义,因为我不知道你想要什么。

我将尝试将您的问题转化为我理解的内容,您向我们展示结果应该是什么样子,而不是它们是什么。看起来你想要面包制作的小时数,以及该小时的容量

string printString = "";
int totalTime = 0;
int timeInterval = 1;
while (Bread > 0)
{
    if (Bread > Capacity)
    {
        Bread -= Capacity;
        totalTime += timeInterval;
        printString += string.Format("{0} - {1}\n", totalTime, Capacity);
    }

    else
    {
        Bread -= Capacity;
        totalTime += timeInterval;
        printString += string.Format("{0} - {1}", totalTime, Capacity);
        txtResult.text = printString;
    }
}

这将运行While循环当Bread大于0时,如果面包仍然多于你能做的面包数量,它会进入if语句 每次循环都会减少面包的容量并增加一个小时的时间。

在最后一个运行 through bread 将小于capacity,它将运行通过else 语句,然后它将printString 放入结果文本框中,这将使bread 小于0并将结束循环。

如果这不是您想要的,那么您需要更清楚地了解您需要帮助的内容。

我还想在上面的代码块中注意,我只写了我正在使用的变量,你还没有声明,所以如果它们仍在代码中使用,请不要删除所有其他变量.

我做了一个完整的程序,看看你是否还有问题

CLASS

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication7
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        int bread = Convert.ToInt32(txtBread.Text);
        int capacity = Convert.ToInt32(txtCapacity.Text);
        string printString = "";
        int totalTime = 0;
        int timeInterval = 1;
        while (bread > 0)
        {
            if (bread > capacity)
            {
                bread -= capacity;
                totalTime += timeInterval;
                printString += string.Format("{0} - {1}\n", totalTime, capacity);
            }

            else
            {
                bread -= capacity;
                totalTime += timeInterval;
                printString += string.Format("{0} - {1}", totalTime, capacity);
                txtResult.Text = printString;
            }
        }
    }
}
}

XAML

<Window x:Class="WpfApplication7.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <TextBox HorizontalAlignment="Left" Height="23" Margin="69,42,0,0" TextWrapping="Wrap" Name="txtBread" Text="" VerticalAlignment="Top" Width="120"/>
        <TextBox HorizontalAlignment="Left" Height="23" Margin="69,70,0,0" TextWrapping="Wrap" Name="txtCapacity" Text="" VerticalAlignment="Top" Width="120"/>
        <TextBox HorizontalAlignment="Left" Height="255" Margin="221,42,0,0" TextWrapping="Wrap" Name="txtResult" Text="" VerticalAlignment="Top" Width="177"/>
        <Button Content="Button" HorizontalAlignment="Left" Margin="114,98,0,0"     VerticalAlignment="Top" Width="75" Click="Button_Click"/>

    </Grid>
</Window>