請問一下switch VS if!!!!!

請問一下程設的問題

switch和if可以一起用嗎?

如果可以的話!

要怎麼使用呢?

可以舉個範例嗎??

Update:

那可以這樣使用嗎?

if

{

switch(a)

{case1:

break;

case2:

break;

}

2 Answers

Rating
  • 1 decade ago
    Favorite Answer

    switch跟if敘述可以一起用,只要把if敘述加到case下就可以了

    case下可加任何敘述,像迴圈也可以(for,while...)

    switch(condition)

    {

    case c1:

    break;

    default:

    break;

    }

    condition必須是「整數」(字元也算整數)且case條件式(c1)不可做範圍比較,必須為固定值

    當然你可以用多個case條件式來完成某個範圍值域比對

    但是如果是要比對某個範圍值用if()敘述會比較省事多了

    以下2段程式結果是一樣的,但用switch就顯得冗長

    尤其在範圍值域更大的時候

    EX1:

    if(rank>=1 && rank<=3)

    {

    printf("OK");

    }

    EX2:

    switch(rank)

    {

    case 1:

    case 2:

    case 3:

    printf("OK");

    break;

    default:

    break;

    }

    以下範例,假如名次在前3名且成績達75分以上則可申請獎學金:

    #include <stdio.h>

    main()

    {

    int rank=1; //名次

    int scope=80; //成績

    switch(rank)

    {

    case 1:

    case 2:

    case 3:

    if(scope >= 75)

    printf("符合獎學金申請資格\n");

    else

    printf("成績未達申請資格\n");

    break;

    default:

    printf("名次未達資格\n");

    break;

    }

    system("pause");

    }

    2008-04-04 10:22:44 補充:

    if加在外層也是可以,不過你的if沒加條件式喔

    if(b) //假如b為真,則執行以下敘述

    {

    switch(a)

    {case1:

    break;

    case2:

    break;

    }

    Source(s): me
  • 1 decade ago

    可以壓

    例如一個成績分數score<60是不及格,然後score=70尚可

    ,score=80不錯,score=90很好,score=100很棒,

    那就可以用switch去做,這樣程式反而就比較好觀看

    ,而且不用每一行都用if。

    Source(s): 自己
Still have questions? Get your answers by asking now.