黑马程序员技术交流社区

标题: 无聊的时候制作。。。 [打印本页]

作者: 徐荣权    时间: 2013-1-31 22:39
标题: 无聊的时候制作。。。
本帖最后由 徐荣权 于 2013-2-1 07:28 编辑

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 传说___
{
    class Program
    {
        static void Main(string[] args)
        {
            string [] money = new string [8];
            for (int i = 1; i < money.Length;i++ )
            {
                Console.WriteLine("请输入第{0}个数字",i);
                money =Console.ReadLine();
            }
            int number = 1;
            do
            {
                Console.WriteLine("你输入的第一数字为:"+money[number]);
                number++;
             }while(number>=8);
            Console.ReadKey();
        }
    }
}
这是无聊时候瞎弄的一个小程序,调试的时候出毛病了。。。
do{
}while()
没有循环。。。
什么原因?
求高人指点下。谢谢。

作者: 张世钦    时间: 2013-1-31 22:59
虽然我学的java,但是和c#应该差不多.
看出两个问题,不知道对不对,楼主看看吧!


问题一:Console.WriteLine("请输入第{0}个数字",i);//这句话有问题,你一直要让用户输入第0个数字?   
我觉得应该改为: Console.WriteLine("请输入第"+i+"个数字",i);

问题二:
int number = 1;
            do
            {
                Console.WriteLine("你输入的第一数字为:"+money[number]);
                number++;
             }while(number>=8);//你上面声明了number = 1,这里怎么可能为true?????
            Console.ReadKey();
        }
作者: 徐荣权    时间: 2013-1-31 23:03
张世钦 发表于 2013-1-31 22:59
虽然我学的java,但是和c#应该差不多.
看出两个问题,不知道对不对,楼主看看吧!

你的问题1是不存在的,这是一个占位符使用的问题。
至于问题2,number++是可以改变number的值的。
而且while里一直是true会一直循环,而我这个只输出了一次就停止了。
虽然没解决,不过还得谢谢你。呵呵!
作者: ﹏_、    时间: 2013-1-31 23:18
本帖最后由 ﹏_、 于 2013-1-31 23:22 编辑

string[] money = new string[8];
            for (int i = 0; i < money.Length; i++)
            {
                Console.WriteLine("请输入第{0}个数字", i);
                money = Console.ReadLine();
            }
            int number = 0;
            do
            {
                Console.WriteLine("你输入的第"+(number+1)+"数字为:" + money[number]);
                number++;
            } while (number < 8);
            Console.ReadKey();

你应该改成这样就对了
1:money =Console.ReadLine(); money是一个数组给数组赋值下面要写上角标
2:int number = 1;
            do
            {
                Console.WriteLine("你输入的第一数字为:"+money[number]);
     数组的角标是从0开始的如果把number初始值设置成为1那么他输出是从数组中第二个数输出的
3:do{表达式1}while(表达式2)语句是做表达式1判断表达式2如果表达式2为真循环表达式1如果表达式2为假退出循环


作者: My_xiaoxi    时间: 2013-2-1 02:49
知道是什么问题吗?
        money =Console.ReadLine();//mongey是数组你都没接收到它的值
应该是 money[i] = Console.ReadLine();
你看 哈是不是这个问题啊,我也是学java的哈哈
作者: My_xiaoxi    时间: 2013-2-1 02:50
你的代码是没错的,只有那里有错导致你调试进不去
作者: 徐荣权    时间: 2013-2-1 07:27
明白了!呵呵!谢谢各位!两处小失误!嘿嘿!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2