A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐荣权 中级黑马   /  2013-1-31 22:39  /  1807 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 徐荣权 于 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()
没有循环。。。
什么原因?
求高人指点下。谢谢。

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

6 个回复

倒序浏览
虽然我学的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();
        }

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
张世钦 发表于 2013-1-31 22:59
虽然我学的java,但是和c#应该差不多.
看出两个问题,不知道对不对,楼主看看吧!

你的问题1是不存在的,这是一个占位符使用的问题。
至于问题2,number++是可以改变number的值的。
而且while里一直是true会一直循环,而我这个只输出了一次就停止了。
虽然没解决,不过还得谢谢你。呵呵!

点评

第二个地方绝对有问题,就是number++了, number= 2; 你条件还是false啊 你条件是number>=8 也就是你do{}while{}就把do里面的代码执行了下. 应该把条件改为num<8   发表于 2013-1-31 23:39
回复 使用道具 举报
本帖最后由 ﹏_、 于 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为假退出循环

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
知道是什么问题吗?
        money =Console.ReadLine();//mongey是数组你都没接收到它的值
应该是 money[i] = Console.ReadLine();
你看 哈是不是这个问题啊,我也是学java的哈哈
回复 使用道具 举报
你的代码是没错的,只有那里有错导致你调试进不去
回复 使用道具 举报
明白了!呵呵!谢谢各位!两处小失误!嘿嘿!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马