我决定今天坐下来尝试做一个简单的主要计数器程序,你输入两个素数的子模型,然后程序会告诉你用来获得该产品的乘数。虽然它似乎崩溃了。在通过注释掉代码消除过程之后我得出结论,它必须是我崩溃整个程序的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++;
}
}
}
}
}
答案 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