首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

一段最基础的C#程序【初学者提问】

2014-01-17 
一段最基础的C#程序【菜鸟提问】刚开始学C#,下面是自己设计的一段小程序,但是完全不能达到要求,求各位大神给

一段最基础的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之类的,就是死循环——也许程序没有死,但是你的逻辑思想死掉了。
[解决办法]

引用:
试过的,但是不能运行,系统也不给出错误原因……抱歉第一次发帖不怎么懂规矩。


当然没有“错误原因”反馈了,因为原本一个只需要十毫秒的工作,被你写成死循环了。
[解决办法]
事件驱动的程序,每一段程序的出发点都是“事件”。如果你不及时让你的程序“退出”了,哪里还有下一个事件啊?死掉了嘛。

事件驱动程序,认真理解这个概念吧。
[解决办法]
如果你做成图形界面,不需要循环,因为用户不断按按钮本身就是循环了。
定义的猜数变量a应该定义成成员变量,否则每次按了按钮,都会产生一个。

do
            {
                label1.Text = "Please try again.";
                b = b + 1;
            }
            while (b >= a);
如果一开始b>a的话,这个程序就会进入死循环。
[解决办法]
新手建议从控制台程序学起,先把基本概念搞清楚。比如什么是do while循环。
while的条件为真,就会继续循环,否则退出循环。
[解决办法]
本帖最后由 caozhy 于 2014-01-17 00:18:17 编辑 你的这个判断有问题的,这样不会得到你想要的结果,睡之前我给你写了,粗粗的将就下吧,你也可以自己优化下
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;
                }

        }
    }
}

热点排行