温度建议应用

时间:2015-09-22 22:57:04

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

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

这是为了一堂课,虽然我试图自己理解。我在编码时遇到语法错误问题。这个控制台应用程序的目标是让用户能够输入温度并建议所需的衣服(即#34;穿上轻便夹克")。

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

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

这是我到目前为止所做的:

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();

        }
    }
}

3 个答案:

答案 0 :(得分:0)

这些点会出现语法错误。

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;的声明移至{{的开头即可1}} function,将所有现有代码包装在Main()表达式中。

答案 1 :(得分:0)

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

protected void Page_Load(object sender, System.EventArgs e)
    {
//Other Stuff in here, irrelevant to current question

HtmlMeta view = new HtmlMeta();
                view.Name = "viewport";
                if (c.ViewChange = false)
                {
                    view.Content = "width=device-width, initial-scale=1";
                    lbtnFull.Visible = true;
                    lbtnMobile.Visible = false;

                }
                else
                {
                    view.Content = "width=1040px, initial-scale=1";
                    lbtnFull.Visible = false;
                    lbtnMobile.Visible = true;
                }
                MetaPlaceHolder.Controls.Add(view);
}

必须......

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

答案 2 :(得分:0)

感谢Maximilian,我已经解决了。

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();
            }

        }
    }
}

^^^ 这很有效,谢谢!