一段最基础的C#程序【菜鸟提问】
刚开始学C#,下面是自己设计的一段小程序,但是完全不能达到要求,求各位大神给出点建议……
设计的时候是想设计一个简单的猜数字游戏,系统随机产生1-3中一个数字,然后用户在textBox里输入数字后,单击Button1,如果比随机数小,label1显示“No”再次单击会使输入数字+1,直到与随机数字相等。如果比随机数字大,就不再改变,label1显示“Sorry”,如果相等则label1显示“Congratulations”。这样的设想能不能成功?如果不行,怎样才能利用顺序语句、循环语句、选择语句设计一个类似的简单小游戏?
下面是自己设计的错误程序……还请指正。
namespace _3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Random Random1 = new Random();
private void button1_Click(object sender, EventArgs e)
{
int a = Random1.Next(0, 4);
String s = textBox1.Text;
int b = Convert.ToInt32(s);
do
{
label1.Text = "Please try again.";
b = b + 1;
}
while (b >= a);
if (b > a)
{
label1.Text = "Sorry,try again!";
}
else
{
label1.Text = "Congratulations!";
}
}
}
}
[解决办法]
首先搞懂,设计一个程序要知道进退之道。当用户按下按钮,程序给出一个反馈信息之后,你的那段程序就结束了。你整一个do、while之类的,就是死循环——也许程序没有死,但是你的逻辑思想死掉了。
[解决办法]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
Random Random1 = new Random();
public Form1()
{
Class1.temp = "";//这是新建的一个类,里面就只有 public static string temp;这样一句话,你复制代码进去就建个类就行了,时间太赶没来的急想别的
int a = Random1.Next(0, 4);
InitializeComponent();
Class1.temp = a.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
int a = Convert.ToInt32(Class1.temp);
string s = textBox1.Text;
int b = Convert.ToInt32(s);
label1.Text="";
if (b > a)
{
label1.Text = "Sorry";
}
if (b == a)
{
label1.Text = "Congratulations";
}
if (b < a)
{
label1.Text = "No";
int temp = b + 1;
string temps = temp.ToString();
textBox1.Text = temps;
}
}
}
}