【问题标题】:Temperature Advice Application温度建议申请
【发布时间】:2015-09-22 22:57:03
【问题描述】:

第一个问题。任何建议都会有所帮助。

这是一个课程,虽然我试图自己理解。我在编码中遇到了一些语法错误问题。此控制台应用程序的目标是让用户能够输入温度并就需要穿什么衣服给出建议(即“穿上薄外套”)。

在此之前我已经完成了温度转换应用程序,并将我的代码添加到了建议应用程序中。我查看了其他示例,但没有找到类似这样的 if...else 语句的任何简洁示例。

我认为错误是因为变量不是布尔值,但我不知道如何将它转换为布尔值,仅用于 if else 语句。

这是我目前所拥有的:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleF_to_C_App
{
    class Program
    {
        static void Main(string[] args)
        {
            //declare a char variable to store the degree symbol
            char chrDegree = (char)176;

            //display program info
            Console.WriteLine("Temperature Conversions with Advice (v.1) Sept 17, 2015");
            Console.WriteLine("-------------------------------------------------------\n\n");
            //prompt user to enter the temperature in F
            Console.Write("Enter today's temperature in {0} F (eg 60): ", chrDegree);

            //read in the user input
            string strF = Console.ReadLine();

            //declare two doubles to store F and C temperature
            double dblF, dblC;

            //convert input from string to double
            dblF = Convert.ToDouble(strF);

            //calculate celsius using fahrenheit
            dblC = (dblF - 32) * 5 / 9;

            Console.WriteLine("\n\nToday's Temperature: {0:F2}{1} F = {2:F2}{1} C \n\n",
                dblF, chrDegree, dblC);

            double temp = double.Parse(Console.ReadLine());

            //if the user enters < 40
                if (temp < 40)
            {
                Console.WriteLine("\n\nIt is very cold. Put on a heavy coat.");
            }

            else if
            {
                 (temp > 40 || temp < 60)
                Console.WriteLine("\n\nIt is cold. Put on a coat.");
            }
            else if
            {
                 (temp >= 60 || temp < 70)
                Console.WriteLine("\n\nThe temperature is cool. Put on a light jacket.");
            }
            else if
            {
                 (temp >= 70 || temp < 80)
                Console.WriteLine("\n\nThe temperature is pleasant. Wear anything you like.");
            }
            else if
            {
                  (temp >= 80 || temp < 90)
                Console.WriteLine("\n\nThe temperature is warm. Wear short sleeves.");
            }
            else if
            {
                 (temp >= 90)
                Console.WriteLine("\n\nIt is hot. Wear shorts today.");
            }

            Console.WriteLine("Thank you for using the Temperature Conversion Application.\n\n");
            //ask if the user wants to continue
            Console.Write("Do you want to continue Y/N ? ");
            //reads in the user input
            strContinue = Console.ReadLine();
            Console.WriteLine("\n\n");

            //if the user enters N or n
            if (strContinue == "N" || strContinue == "n")
            {
            //set the bool variable to false
            boolContinue = false;
            }
            //otherwise
            else
            {
            //set the boolean variable to true
            boolContinue = true;
            }

            Console.ReadKey();

        }
    }
}

【问题讨论】:

  • 我把水晶球忘在家里了 - 你看到的语法错误是什么?
  • strContinue 没有定义?

标签: c# if-statement temperature boolean-operations


【解决方案1】:

您会在这些地方遇到语法错误。

else if
{
    (temp > 40 || temp < 60)
    Console.WriteLine("\n\nIt is cold. Put on a coat.");
}

语法是if( expression) { /* ... */ },所以(必须直接跟在if之后。这是正确的:

else if (temp > 40 || temp < 60)
{
    Console.WriteLine("\n\nIt is cold. Put on a coat.");
}

另外,您忘记将此变量声明为string

strContinue = Console.ReadLine();

并且您确实将此布尔值正确设置为truefalse,因此您只需将bool boolContinue = true; 的声明移动到Main() 函数的开头,包装所有现有的while(boolContinue) 表达式中的代码。

【讨论】:

    【解决方案2】:

    你遇到的一个问题是你的比较。

    else if
    {
        (temp >= 90)
        Console.WriteLine("\n\nIt is hot. Wear shorts today.");
    }
    

    必须...

    else if (temp >= 90)
    {
        Console.WriteLine("\n\nIt is hot. Wear shorts today.");
    }
    

    【讨论】:

      【解决方案3】:

      感谢马克西米利安,我成功了。

      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Text;
      using System.Threading.Tasks;
      
      namespace ConsoleApplication2
      {
          class Program
          {
              static void Main(string[] args)
              {
      
                  //declare a char variable to store the degree symbol
                  char chrDegree = (char)176;
                  Boolean boolContinue = true;
                  string strContinue;
                  //declare two doubles to store F and C temperature
                  double dblF, dblC;
      
      
                  while (boolContinue == true)
                  {
      
                      //display program info
                      Console.WriteLine("Temperature Conversions with Advice (v.1) Sept 17, 2015");
                      Console.WriteLine("-------------------------------------------------------\n\n");
                      //prompt user to enter the temperature in F
                      Console.Write("Enter today's temperature in {0} F (eg 60): ", chrDegree);
      
                      //read in the user input
                      string strF = Console.ReadLine();
      
      
                      //convert input from string to double
                      dblF = Convert.ToDouble(strF);
      
                      //calculate celsius using fahrenheit
                      dblC = (dblF - 32) * 5 / 9;
      
                      Console.WriteLine("\n\nToday's Temperature: {0:F2}{1} F = {2:F2}{1} C \n\n",
                          dblF, chrDegree, dblC);
      
                      //if the user enters < 40
                      if (dblF < 40)
                      {
                          Console.WriteLine("\n\nIt is very cold. Put on a heavy coat.");
                      }
      
                      else if (dblF > 40 && dblF < 60)
                      {
                          Console.WriteLine("\n\nIt is cold. Put on a coat.");
                      }
      
                      else if (dblF >= 60 && dblF < 70)
                      {
                          Console.WriteLine("\n\nThe temperature is cool. Put on a light jacket.");
                      }
      
                      else if (dblF >= 70 && dblF < 80)
                      {
                          Console.WriteLine("\n\nThe temperature is pleasant. Wear anything you like.");
                      }
      
                      else if (dblF >= 80 && dblF < 90)
                      {
                          Console.WriteLine("\n\nThe temperature is warm. Wear short sleeves.");
                      }
      
                      else if (dblF >= 90)
                      {
                          Console.WriteLine("\n\nIt is hot. Wear shorts today.");
                      }
      
                      Console.WriteLine("Thank you for using the Temperature Conversion Application.\n\n");
                      //ask if the user wants to continue
                      Console.Write("Do you want to continue Y/N ? ");
                      //reads in the user input
                      strContinue = Console.ReadLine();
                      Console.WriteLine("\n\n");
      
                      //if the user enters N or n
                      if (strContinue == "N" || strContinue == "n")
                      {
                          //set the bool variable to false
                          boolContinue = false;
                      }
                      //otherwise
                      else
                      {
                          //set the boolean variable to true
                          boolContinue = true;
                      }
      
                      Console.ReadKey();
                  }
      
              }
          }
      }
      

      ^^^ 这行得通,谢谢!

      【讨论】:

        猜你喜欢
        • 2017-05-03
        • 1970-01-01
        • 2018-05-31
        • 1970-01-01
        • 1970-01-01
        • 2018-12-28
        • 1970-01-01
        • 1970-01-01
        • 2019-10-23
        相关资源
        最近更新 更多