加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 不知道为什么我的循环不循环

发布时间:2020-12-15 23:41:40 所属栏目:百科 来源:网络整理
导读:我是编程的新手,并且一直致力于将桑拿温度从华氏温度转换为摄氏温度的程序,然后告诉用户他/她是否应该根据原始输入数量来调高温度.我已经完成了我的大部分代码,但现在我无法理解为什么当我写一个低于73度或超过77度的数字时它不会循环.任何人都能看到我的眼
我是编程的新手,并且一直致力于将桑拿温度从华氏温度转换为摄氏温度的程序,然后告诉用户他/她是否应该根据原始输入数量来调高温度.我已经完成了我的大部分代码,但现在我无法理解为什么当我写一个低于73度或超过77度的数字时它不会循环.任何人都能看到我的眼睛似乎找不到的问题吗?

using System;

namespace BastunKP
{
    class Program
    {
        public static int FahrToCels(int fahr)
        {
            int tempCels = (fahr - 32) * 5 / 9;
            return tempCels;
        }

        public static void Main(string[] args)
        {
            Console.WriteLine("Skriv in Fahrenheit: ");
            int fahr = int.Parse(Console.ReadLine());
            int tempCels = FahrToCels(fahr); 

            do
            {
                if (tempCels < 73)
                {
                    Console.WriteLine("Temperaturen ?r f?r kallt,skruva upp lite!");
                }
                else if (tempCels > 77)
                {
                    Console.WriteLine("Temperaturen ?r f?r varmt,skruva ner lite!");
                }
                else
                {
                    Console.WriteLine("Temperaturen ?r nu lagom,hoppa in!");
                    return;
                }

                fahr = int.Parse(Console.ReadLine());
                tempCels = FahrToCels(fahr);
            }           
            while (tempCels < 73 && tempCels > 77);
        }
    }
}

我也有一个关于我的任务的问题,老师说过,对于更高的年级,我应该研究将华氏温度转换为摄氏温度的公式,并使其成为双倍,但我根本不知道如何做这个改变.

提前致谢

解决方法

欢迎来到StackOverflow!现在,让我们来看看你的问题:

首先,考虑你的do-while循环.

do {
    if (tempCels < 73) {
        // Temperature too high
        Console.WriteLine("Temperaturen ?r f?r kallt,skruva upp lite!");
    } else if (tempCels > 77) {
        // Temperature too low
        Console.WriteLine("Temperaturen ?r f?r varmt,skruva ner lite!");
    } else {
        // Temperature just right,hop in!
        Console.WriteLine("Temperaturen ?r nu lagom,hoppa in!");
        return;
    }

    fahr = int.Parse(Console.ReadLine());
    tempCels = FahrToCels(fahr);

}
while (tempCels < 73 || tempCels > 77);

如您所见,我删除了不必要的其他条件.现在发生的是,检查所有可能的条件(temp <73,temp> 77,并且73< temp< 77). 你在其他答案中指出的一个错误就是你有&& (AND)而不是|| (要么).当然,价值不能低于73和高于77

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读