輸入大于10的數(shù)字時,第一個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的關(guān)系;
? ? ? ? ? ? Console.WriteLine("請輸入數(shù)字:");
? ? ? ? ? ? int a = int.Parse (Console.ReadLine());
? ? ? ? ? ? if (a>10)?
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? Console.WriteLine("輸入數(shù)字大于10");
? ? ? ? ? ? }
? ? ? ? ? ? if (a < 10)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? Console.WriteLine("輸入數(shù)字小于10");
? ? ? ? ? ? }
? ? ? ? ? ? else
? ? ? ? ? ? {
? ? ? ? ? ? ? ? Console.WriteLine("輸入的數(shù)字等于10");
? ? ? ? ? ? }
? ? ? ? ? ? Console.ReadKey();
? ? ? ? }
? ? }
}
2018-12-10
如果沒有return這類關(guān)鍵字,程序會對所有的if都逐個進行判斷。你的代碼第二個if改成else if就可以了
2018-12-10
自己根據(jù)幕友的回答又理解了一下,如果在第二個if前不加else時,計算機將按先后順序,依次執(zhí)行,并將第二個if做為一個if條件語句的起始(就是第二個if和后面的else作為一個條件語句),這樣第一個if如果為true顯示以后,從第二個if開始判斷,因第一個if已經(jīng)為true,所以第二個if將不被顯示,但else則作為第二個if的組成部分,會顯示false結(jié)果,所以代碼最終的顯示結(jié)果才會出現(xiàn)兩種結(jié)果同時顯示的情況。
2018-12-10
自己根據(jù)幕友的回答又理解了一下,如果在第二個if前不加else時,計算機將按先后順序,依次執(zhí)行,并將第二個if做為一個if條件語句的起始(就是將if作為),這樣第一個if如果為true顯示以后,從第二個if開始判斷,因第一個if已經(jīng)為true,所以第二個if將不被顯示,但else則作為第二個if的組成部分,會顯示false結(jié)果,所以代碼最終的顯示結(jié)果才會出現(xiàn)兩種結(jié)果同時顯示的情況。