问答详情
源自:3-3 C#中if...else条件结构

输入大于10的数字时,第一个if 和else都输出了,怎么回事

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;


namespace _5._1if语句

{

    class Program

    {

        static void Main(string[] args)

        {

            //判断输入变量与10的关系;

            Console.WriteLine("请输入数字:");

            int a = int.Parse (Console.ReadLine());

            if (a>10) 

                {

                Console.WriteLine("输入数字大于10");

            }

            if (a < 10)

            {

                Console.WriteLine("输入数字小于10");

            }

            else

            {

                Console.WriteLine("输入的数字等于10");


            }

            Console.ReadKey();

        }

    }

}


提问者:慕仰2068258 2018-12-09 17:50

个回答

  • 慕慕6389377
    2018-12-10 01:53:35
    已采纳

    如果没有return这类关键字,程序会对所有的if都逐个进行判断。你的代码第二个if改成else if就可以了

  • 慕仰2068258
    2018-12-10 12:50:36

    自己根据幕友的回答又理解了一下,如果在第二个if前不加else时,计算机将按先后顺序,依次执行,并将第二个if做为一个if条件语句的起始(就是第二个if和后面的else作为一个条件语句),这样第一个if如果为true显示以后,从第二个if开始判断,因第一个if已经为true,所以第二个if将不被显示,但else则作为第二个if的组成部分,会显示false结果,所以代码最终的显示结果才会出现两种结果同时显示的情况。

  • 慕仰2068258
    2018-12-10 12:48:03

    自己根据幕友的回答又理解了一下,如果在第二个if前不加else时,计算机将按先后顺序,依次执行,并将第二个if做为一个if条件语句的起始(就是将if作为),这样第一个if如果为true显示以后,从第二个if开始判断,因第一个if已经为true,所以第二个if将不被显示,但else则作为第二个if的组成部分,会显示false结果,所以代码最终的显示结果才会出现两种结果同时显示的情况。