为什么我的循环在我的按钮空洞内爆炸

时间:2014-10-05 14:10:33

标签: c# linq int primes

我决定今天坐下来尝试做一个简单的主要计数器程序,你输入两个素数的子模型,然后程序会告诉你用来获得该产品的乘数。虽然它似乎崩溃了。在通过注释掉代码消除过程之后我得出结论,它必须是我崩溃整个程序的while循环。有没有人对这可能无效的原因有任何答案?

代码:

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 A_Prime
{
    public partial class Form1 : Form
    {
        int multiplier1 = 1;
        int multiplier2 = 1;

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            while (true)
            {

                int Product = multiplier1 * multiplier2;

                label2.Text = multiplier1 + "x" + multiplier2 + "=" + Product;

                string product = Product.ToString();



                if (product == textBox1.Text)
                {
                    label3.Text = "Your Multipliers Are" + multiplier1 + "x" + multiplier2;


                }
                else
                {
                    multiplier1++;

                    multiplier2++;
                }




            }
        }
    }
}

4 个答案:

答案 0 :(得分:0)

你有一个无限循环。你永远不会脱离while循环,你需要在某处break声明。看看你的代码,看起来就像你找到乘数并设置label3.Text值一样,你就完成了,并且应该突破循环。

private void button1_Click(object sender, EventArgs e)
     {
         while (true)
         {
            int Product = multiplier1 * multiplier2;
            label2.Text = multiplier1 + "x" + multiplier2 + "=" + Product;
            string product = Product.ToString();    

            if (product == textBox1.Text)
            {
                label3.Text = "Your Multipliers Are" + multiplier1 + "x" + multiplier2;
                break;
            }
            else
            {
                multiplier1++;
                multiplier2++;
            }    
        }
    }

答案 1 :(得分:0)

您的while循环中没有退出策略或条件。引入任何退出条件以及此关键字

if(exit_condition)
   break;

答案 2 :(得分:0)

while循环执行其余代码的条件始终为true。正如我所看到的,您的代码中没有任何部分可以更改该bool值,因此您拥有的是无限循环...尝试更改while循环条件。

答案 3 :(得分:0)

你的循环中没有中断,你只得到具有自然数平方根的数字,因为你在循环中只计算n ^ 2