//沒加goto
#include<iostream>
using namespace std;
int main()
{
   int a;
   cout<<"請輸入一個月份:"<<endl;
   cin>>a;
   if(a<1||a>12){
   cout<<"沒有這個月份"<<endl;
   //goto end;
   }
   switch((a%12)/3)                    //(a%12)將12個數為劃分0~11共12段;(a%12)/3將12個數劃分成0~3共4段
   {
      case 0:                          //case 0   第一段
      cout<<"此月份為冬天"<<endl;
      break;
      case 1:                          //case 1   第二段
      cout<<"此月份為春天"<<endl;
      break;
      case 2:                          //case 2   第三段
      cout<<"此月份為夏天"<<endl;
      break;
      case 3:                          //case 3   第四段
      cout<<"此月份秋天"<<endl;
      break;
          }
   //end:
      system("pause");
      return 0;
    }

 

DOS輸出:
請輸入一個月份:
0
沒有這個月份
此月為冬天
請按任意鍵繼續 . . .

 

 

//有加goto
#include<iostream>
using namespace std;
int main()
{
   int a;
   cout<<"請輸入一個月份:"<<endl;
   cin>>a;
   if(a<1||a>12){
   cout<<"沒有這個月份"<<endl;
 goto end;
   }
   switch((a%12)/3)                    //(a%12)將12個數為劃分0~11共12段;(a%12)/3將12個數劃分成0~3共4段
   {
      case 0:                          //case 0   第一段
      cout<<"此月份為冬天"<<endl;
      break;
      case 1:                          //case 1   第二段
      cout<<"此月份為春天"<<endl;
      break;
      case 2:                          //case 2   第三段
      cout<<"此月份為夏天"<<endl;
      break;
      case 3:                          //case 3   第四段
      cout<<"此月份秋天"<<endl;
      break;
          }
 end:
      system("pause");
      return 0;
    }

 

DOS輸出:
請輸入一個月份:
0
沒有這個月份
請按任意鍵繼續 . . .

 


原因:撰寫if完,但並沒有跳脫指令,所以會持續執行下面switch指令,而goto是一種無條件前往的指令,可避免持去執行的語法。

霄狼一哥 發表在 痞客邦 PIXNET 留言(0) 人氣()