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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |