c语言中的switch语句

c\u8bed\u8a00switch\u8bed\u53e5

\u6267\u884ccase 2\u662f\u56e0\u4e3a\u5728switch (x) \u4e2dx=1\uff0c\u6240\u4ee5\u6267\u884ccase 1\uff0c\u7136\u800ccase 1 \u8fd9\u6761\u8bed\u53e5\u6ca1\u6709break\uff0c\u6240\u4ee5switch (x)\u5728\u6267\u884c\u4e86case 1\u4e4b\u540e\u5c06\u7ee7\u7eed\u5f80\u4e0b\u4f9d\u6b21\u6267\u884ccase\u8bed\u53e5\uff0c\u76f4\u5230\u78b0\u5230break\u5c31\u8df3\u51faswitch \u5faa\u73af\u3002

\u5bf9\u4e8e\u201ca\u7684\u81ea\u52a0\u662f\u5148\u6267\u884c\u540e\u5728\u81ea\u52a0\uff0c\u5f53\u6b64\u7a0b\u5e8fa\u81ea\u52a0\u7684\u65f6\u5019\u6ca1\u6709\u6267\u884c\u5176\u4ed6\u8bed\u53e5\u554a\uff1f\uff1f\uff1f\uff1f\uff1f\uff1f \u201d \u5219\u662f\u4f60\u6ca1\u770b\u5230\u7a0b\u5e8f\u4e2d\u7684\u8bed\u53e5a++,b++\u5b83\u81ea\u52a0\u5b8c\u4e86\u4ee5\u540e\u628a\u503c\u4efb\u7136\u662f\u8d4b\u503c\u7ed9a,b\u672c\u8eab\u7684\uff0c\u800c\u4e0d\u662f\u8d4b\u503c\u7ed9\u5176\u4ed6\u53d8\u91cf\u4f8b\u5982c=a++;z=b++\u3002\u5982\u679c\u662f\u8fd9\u6837\u8d4b\u503c\u7ed9\u522b\u7684\u53d8\u91cf\u7684\u8bdd\u90a3\u4e48\u5c31\u5f88\u660e\u786e\u4e86c,z\u7684\u503c\u5c06\u548c\u8bfe\u672c\u4e0a\u8bf4\u5f97\u4e00\u6837\u90fd\u662f\u81ea\u52a0\u4ee5\u524d\u7684\u503c \u3002\u4e5f\u5c31\u662f\u8bf4\u8fd9\u4e2a\u7a0b\u5e8f\u5f53\u4e2d\u6700\u540eprintf\u8f93\u51fa\u7684\u662fa,b\u7684\u503c\uff0c\u4f46\u662fa,b\u5728\u81ea\u52a0\u8fc7\u7a0b\u4e2d\u503c\u90fd\u53d8\u5316\u4e86,\u5c31\u662f\u8bf4\u76f8\u5f53\u4e8e\u8bed\u53e5a=a++,b=b++.
\u6211\u5c06\u4f60\u7684\u7a0b\u5e8f\u8fdb\u884c\u4e86\u66f4\u6539\uff0c\u4f60\u5c06\u4e24\u4e2a\u7a0b\u5e8f\u90fd\u8fd0\u884c\u4e0b\u7136\u540e\u518d\u5bf9\u7167\u7740\u770b\u4e00\u4e0b\u5c31\u660e\u767d\u4e3a\u4ec0\u4e48a,b\u7684\u503c\u6700\u540e\u662f2\u548c1\u4e86\uff0c\u7a0b\u5e8f\u5982\u4e0b
#include
main()
{
int x=1,y=0,a=0,b=0,c=0,z=0;
switch (x)
{case 1:
switch(y)
{
case 0:c=a++;break;
case 1:b++;break;
}
case 2: c=a++,z=b++;break;
case 3:a++,b++;
}
printf("c=%d,z=%d\n",c,z) ;
}

\u5bf9\u4e8e ++i \u548ci++ \u6709\u4ec0\u4e48\u533a\u522b\uff1f
\u7b80\u5355\u800c\u8a00: ++i\u5728i \u5b58\u50a8\u7684\u503c\u4e0a\u589e\u52a0\u4e00\u5e76\u5411\u4f7f\u7528\u5b83\u7684\u8868\u8fbe\u5f0f\u201c\u8fd4\u56de\u201d \u65b0\u7684, \u589e\u52a0\u540e\u7684\u503c; \u800ci++ \u5bf9i\u589e\u52a0\u4e00, \u4f46\u8fd4\u56de\u539f\u6765\u7684\u662f\u672a\u589e\u52a0\u7684\u503c\u3002

\u8868\u8fbe\u5f0f\u5c31\u6709\u7531\u4e00\u4e32\u201c\u6570\u5b57\u201d\u548c\u201c\u7b26\u53f7\u201d\u7ec4\u6210\u7684\u5f0f\u5b50\uff0c\u4f8b\u59821+2\u662f\u8868\u8fbe\u5f0f\uff0c12*8-1*99\u4e5f\u662f\u8868\u8fbe\u5f0f\u3002C++
\u7684\u201c\u7b26\u53f7\u201d\u9664\u4e86\u666e\u901a\u7684\u7b97\u672f\u8fd0\u7b97+-*/\u4e4b\u5916\u8fd8\u6709\u5176\u4ed6\u7684\u3002
\u5e38\u91cf\u8868\u8fbe\u5f0f\u5c31\u662f\u8868\u8fbe\u5f0f\u91cc\u9762\u53ea\u6709\u5e38\u91cf\u7684\u5f0f\u5b50\uff0c\u6bd4\u59821+2\u662f\u5e38\u91cf\u8868\u8fbe\u5f0f\uff0c\u5982\u679c\u5b9a\u4e49a\u4e3a\u5e38\u91cf1\uff0c\u90a3\u4e48a+2\u4e5f\u662f\u5e38\u91cf\u8868\u8fbe\u5f0f\u3002
\u5982\u679c\u5b9a\u4e49\u53d8\u91cfa\uff0c\u90a3\u4e48a+2\u5c31\u4e0d\u662f\u5e38\u91cf\u8868\u8fbe\u5f0f\u3002

//////////////////////////////////////////////
\u95ee\u9898\u8865\u5145\uff1a\u8bf7\u95ee\u9009\u54ea\u4e2a\uff1f\uff1f case \u5e38\u91cf\u8868\u8fbe\u5f0f!
//////////////////////////////////////////////
\u9009\u62e9C,D,\u8fd9\u4e24\u4e2a\u90fd\u662f\u6b63\u786e\u7684

a:
switch(x)
{
case 1.0:printf("*\n");
case 2.0:printf("*\n");
}
//a\u9519\u8bef\uff0ccase\u540e\u7684\u8868\u8fbe\u5f0f\u5fc5\u987b\u4e3a\u6574\u578b\u6216\u8005\u5b57\u7b26\u578b

b:
switch(x)
{
case 1,2:printf("*\n");
case 3:printf("*\n");
}
//b\u9519\u8bef\uff0ccase\u540e\u7684\u8868\u8fbe\u5f0f\u53ea\u80fd\u6709\u4e00\u4e2a\uff0c\u6240\u4ee5case 1,2:\u662f\u9519\u7684

c:
switch(a+b)
{
case 1:printf("*\n");
case 1+2:printf("*\n");
}
//\u5bf9\u7684\uff0c\u5e38\u91cf(1)\u662f\u6709\u6548\u7684\uff0c\u5e38\u91cf\u8868\u8fbe\u5f0f(1+2)\u662f\u6709\u6548\u7684

d:
switch(a+b)
{
case 1:printf("*\n");
case 2:printf("*\n");
}
//\u5bf9\u7684\uff0c\u5e38\u91cf(1),\u5e38\u91cf(2)\u662f\u6709\u6548\u7684

首先外部switch语句中x=1,所以执行case 1:里面的语句,接着又一个switch语句判断y=0,所以进入case 0:里面的语句,由a++得到a=1;接着break,退出该switch语句,因为case 1后面没有break,所以继续执行case2: a++;b++,这个时候的a=2,b=1,然后一个break语句结束外层的switch语句,最后输出a=2,b=1;

执行了a++后程序跳出swich(y),但是switch(x) case 1:并没有写break,所以程序顺序执行case 2,a++,b++,之后遇到break跳出。综上所述程序执行两次a++,一次b++,最终结果a=2,b=1。

当然有区别,如果你没有break,那语句会逐一执行case,直到碰到break,没有break的话那就直接执行到所有case结束。明白了吗?

  • c璇█switch璇彞
    绛旓細c璇█switch璇彞 C璇█涓殑switch璇彞鏄竴绉嶅璺夋嫨缁撴瀯锛岀敤浜庢牴鎹笉鍚岀殑鏉′欢鎵ц涓嶅悓鐨勪唬鐮佸潡銆俿witch璇彞鏍规嵁琛ㄨ揪寮忕殑鍊间笌case鏍囩杩涜姣旇緝锛屽鏋滃尮閰嶏紝鍒欐墽琛岀浉搴旂殑浠g爜鍧楋紝骞剁户缁鏌ヤ笅涓涓猚ase鏍囩锛岀洿鍒版壘鍒板尮閰嶇殑鏍囩鎴栨墍鏈塩ase鏍囩閮藉凡妫鏌ュ畬姣曘傚鏋滄病鏈夋壘鍒板尮閰嶇殑case鏍囩锛屽垯鎵цdefault浠g爜鍧楋紙...
  • c璇█涓璼witch璇彞鏄粈涔堟剰鎬?
    绛旓細娉ㄦ剰杩欓噷杈撳叆鐨勫煎繀椤绘槸瀹氫箟鐨勫硷紝鍚﹀垯switch璇彞鐨勬潯浠朵笉浼氳瑙﹀彂锛涙渶鍚庣殑default鍒欐槸鐢ㄦ潵鍒ゆ柇涓嶆弧瓒充互涓婃潯浠剁敤鐨勶紝涓嶆弧瓒崇殑鏃跺欒繖閲屾墦鍗板嚭鍙︿竴鍙ヨ瘽鍛婅瘔鐢ㄦ埛杈撳叆闈炴硶浜嗭細4銆佹渶鍚庣紪璇戣皟璇曚笅绋嬪簭锛岀湅鐪嬪涓嶅锛 褰撹緭鍏1-5浠绘剰涓涓肩殑鏃跺欙紝灞忓箷涓婁細鎵撳嵃鍑虹浉搴旂殑璇彞銆備互涓婂氨鏄c璇█涓璼witch璇彞鐨勭敤娉曪細
  • 姹傛暀c璇█涓璼witch 璇彞鐨勮缁嗙敤娉
    绛旓細涓銆佺敤娉曞垎鏋愬涓嬶細1銆丆璇█绋嬪簭璇彞switch锛歴witch鐢ㄥ湪缂栫▼涓紝濡C璇█涓瀹冪粡甯歌窡case涓璧蜂娇鐢紝鏄竴涓垽鏂夋嫨浠g爜銆傚叾鍔熻兘灏辨槸鎺у埗涓氬姟娴佺▼娴佽浆鐨勩switch璇彞鐨勮娉曞涓(switch锛宑ase鍜宒efault鏄叧閿瓧)锛歴witch ( controllingExpression ){case constantExpression1 :case constantExpression2 :case ...
  • switch璇彞鍦C璇█鏄粈涔堟剰鎬濆晩?
    绛旓細Switch鐢ㄥ湪C璇█涓瀹冪粡甯歌窡Case涓璧蜂娇鐢紝鏄竴涓垽鏂夋嫨浠g爜銆係witch浣滅敤涓巌f璇彞绫讳技锛屽叾鍔熻兘灏辨槸鎺у埗涓氬姟娴佺▼娴佽浆鐨勩傚彧鑳介拡瀵瑰熀鏈暟鎹被鍨嬩娇鐢switch锛岃繖浜涚被鍨嬪寘鎷琲nt銆乧har绛夈傚浜庡叾浠栫被鍨嬶紝鍒欏繀椤讳娇鐢╥f璇彞銆傚涓嬶細include<stdio.h>int main(){char rank;printf("璇疯緭鍏ュ垎鏁扮瓑绾э細(A銆丅銆丆銆丏銆...
  • c璇█switch鐨勭敤娉
    绛旓細c璇█switch鐨勭敤娉曞涓嬶細鍦C璇█涓锛switch璇彞鏄紑鍏宠鍙ワ紝涓鑸笌case銆乥reak銆乨efault閰嶅悎浣跨敤锛屽娴佺▼杩涜鎺у埗銆俿witch浣滀负涓涓紑鍏筹紝褰撳彉閲忚〃杈惧紡鐨勫煎搴攃ase涓殑鍊兼椂锛屾墽琛宑ase鍚庨潰鐨勮鍙ュ悗璺冲嚭switch璇彞锛屽鏋滈兘涓嶇鍚堝垯鎵цdefault鍚庨潰鐨勮鍙ュ悗璺冲嚭switch璇彞銆俿witch璇彞鐢ㄦ硶瑙勫垯锛1.鍦ㄤ竴涓猻witch涓彲浠...
  • switch鍦C璇█涓鏄粈涔堟剰鎬
    绛旓細switch 寮鍏虫帶鍒璇彞 涓鑸舰寮忥細switch(c){ case 'A':...;break;case 'B'...;break;...} 鏍规嵁鍙橀噺C鐨涓嶅悓鍊笺傛墽琛岀浉瀵瑰簲鐨刢ase璇彞~
  • c璇█ switch璇彞鎵ц椤哄簭
    绛旓細switch(琛ㄨ揪寮){case 甯搁噺琛ㄨ揪寮1锛 璇彞1; break;case 甯搁噺琛ㄨ揪寮2 : 璇彞2; break;case ...default: 榛樿璇彞}switch璇彞鍧椾箣鍚庣殑璇彞;;2銆佹墽琛岄『搴 绗竴姝ワ細璁$畻switch鍚庨潰鐨勬潯浠惰〃杈惧紡鐨勫笺傜浜屾锛氬皢琛ㄨ揪寮忕殑鍊硷紝鍒嗗埆涓巆ase璇彞涓殑甯搁噺琛ㄨ揪寮忚繘琛屾瘮杈冦傚鏋滅浉绛夛紝鍒欐墽琛屽搴旂殑case璇彞锛屾墽琛...
  • C璇█涓殑switch鍜宒efault鏄粈涔堟剰鎬
    绛旓細switch鍜宒efault鏄C璇█涓殑鍏抽敭璇嶏紝閫氬父鑱斿悎浣跨敤銆switch璇彞鐨勮娉曡鍒欙細鍏朵腑switch銆乧ase銆乥reak銆乨efault閮芥槸鍏抽敭瀛椼俿witch浣滀负寮鍏筹紝褰撳彉閲忚〃杈惧紡鐨勫煎搴攃ase涓殑鍊兼椂锛屾墽琛宑ase鍚庨潰鐨勮鍙ュ悗璺冲嚭switch璇彞锛屽鏋滈兘涓嶇鍚堝垯鎵цdefault鍚庨潰鐨勮鍙ュ悗璺冲嚭switch璇彞銆
  • c璇█switch鐢ㄦ硶涓句緥鍐呭鏄粈涔?
    绛旓細2銆乧ase鍚庨潰鐨勫父閲忚〃杈惧紡鍙兘鏄暣鍨嬨佸瓧绗﹀瀷鎴栨灇涓惧瀷甯搁噺鐨勪竴绉嶈鍙ワ紝缁撴潫鍚庝竴瀹氳甯reak锛屼笉鐒惰繕浼氱户缁墽琛屼笅涓涓猚ase銆傞伒瀹switch璇彞瑙勫垯 switch璇彞闈炲父鏈夌敤锛屼絾鍦ㄤ娇鐢ㄦ椂蹇呴』璋ㄦ厧銆傛墍鍐欑殑浠讳綍switch璇彞閮藉繀椤婚伒寰互涓嬭鍒欙細鍙兘閽堝鍩烘湰鏁版嵁绫诲瀷涓殑鏁村瀷绫诲瀷浣跨敤switch锛岃繖浜涚被鍨嬪寘鎷琲nt銆乧har绛夈傚浜庡叾浠...
  • switchc璇█鐨鐢ㄦ硶
    绛旓細c璇█switch鐨勭敤娉曞涓嬶細1銆佸湪涓涓 switch 涓彲浠ユ湁浠绘剰鏁伴噺鐨 case 璇彞銆傛瘡涓 case 鍚庤窡涓涓姣旇緝鐨勫煎拰涓涓啋鍙枫2銆乧ase 鍚庣殑 绫诲瀷 蹇呴』涓 switch 涓殑鍙橀噺鍏锋湁鐩稿悓鐨勬暟鎹被鍨嬶紝涓斿繀椤绘槸涓涓父閲忔垨瀛楅潰閲忋3銆佸綋琚祴璇曠殑鍙橀噺绛変簬 case 涓殑甯搁噺鏃讹紝case 鍚庤窡鐨勮鍙ュ皢琚墽琛岋紝鐩村埌閬囧埌 break ...
  • 扩展阅读:c语言switch简单举例 ... c语言switch怎么表示范围 ... c++语言switch语句实例 ... 在c语言中switch的作用 ... c语言switch判断成绩 ... c语言中switch用法例题 ... c语言switch default用法 ... switch语句例子c语言 ... c语言中的switch怎么使用 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网