搜尋

首頁  >  問答  >  主體

c++ - C语言switch语法的一个问题

请问图片当中这个问题,为什么答案是C呢?

怪我咯怪我咯2804 天前569

全部回覆(2)我來回復

  • 天蓬老师

    天蓬老师2017-04-17 14:43:23

    switch中的條件必須是確定的,相信你所接觸的絕大多數語言應該都是如此吧。
    也就是說,switch條件之間應該是不能產生歧義的。
    在D中,條件1和條件c就可能產生歧義,因為c為變量,所以當c等於1時就可能造成程式出現不可預測的情況。所以編譯器乾脆就禁止出現這種情況。 (雖然這裡c賦值為2,但是由於不是常數,所以編譯器無法保證運行時變數是否會被改變,所以仍然認為它會產生歧義)
    簡單的說,就是switch條件裡,是不允許出現變數的。 (這裡變數是指能夠改變此條件判斷結果的量,在swift中,允許將條件匹配值賦值給變數的語法)

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 14:43:23

    簡單來講,因為A B D不對

    回覆
    0
  • 取消回覆