首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Do-While不会重复

Do-While不会重复
EN

Stack Overflow用户
提问于 2019-05-26 21:33:59
回答 3查看 78关注 0票数 0

我需要用户输入他们的年龄,然后程序必须计算他们将有多少钱,当他们的年龄达到养老金。根据情况,该人员将节省500或1000。

即使我写了一个Do-While循环,我的代码也不会重复if和else语句。我应该用布尔语句吗?如何或在哪里?或者还有其他我需要看的东西?

我试着只使用'while‘,但我认为我需要使用do-while。

代码语言:javascript
复制
static void Main(string[] args)
{
    Console.Write("Enter age");
    string str = Console.ReadLine();
    int MyAge = Convert.ToInt32(str);
    int money = 15000;
    {
        do
        {
            {
                if (money > 20000 || MyAge < 60)
                {
                    Console.Write("You are saving little");
                    money = money + 500;
                }
                else
                {
                    Console.Write("You are saving a lot");
                    money = money + 1000;
                }
                MyAge++;
            }
        }
        while (money > 20000 && MyAge > 65);
    }

    Console.Write("You are retired by the age of " + MyAge + " and you saved " + money + " dollars.");
}

我预计这个程序至少会达到65岁,但它在我26岁时结束,因为我输入的是我25岁。所以它不会循环。

EN

回答 3

Stack Overflow用户

发布于 2019-05-26 21:40:15

您的while循环在年龄超过65岁时运行。

应为while (money > 20000 && MyAge < 65);

票数 0
EN

Stack Overflow用户

发布于 2019-05-28 02:21:25

如果你想点击更多的次数,当你说你25岁的时候,你需要改变while语句中的条件。它应该看起来像下面这样。

代码语言:javascript
复制
static void Main(string[] args)
        {
            Console.Write("Enter age");
            string str = Console.ReadLine();
            int MyAge = Convert.ToInt32(str);
            int money = 15000;
            {
                do
                {
                    {
                        if (money > 20000 || MyAge < 60)
                        {
                            Console.Write("You are saving little");
                            money = money + 500;
                        }
                        else
                        {
                            Console.Write("You are saving a lot");
                            money = money + 1000;
                        }
                        MyAge++;
                    }
                }
                while (money < 40000 && MyAge < 65);
            }

            Console.Write("You are retired by the age of " + MyAge + " and you saved " + money + " dollars.");
    }

PS“钱> 20000”只是一个很小的数字,你很快就能达到它。

票数 0
EN

Stack Overflow用户

发布于 2019-05-28 17:38:16

解决方案是在while代码中键入||而不是&&!感谢大家的帮助!没有你我不可能做到这一点。:)

代码语言:javascript
复制
                while ((MyAge < 65) || (money < 20000));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56313971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档