鍍金池/ 問答/C++  網(wǎng)絡(luò)安全  HTML/ 大多數(shù)語言的switch語句,不在case后默認(rèn)break是出于什么考慮?

大多數(shù)語言的switch語句,不在case后默認(rèn)break是出于什么考慮?

為什么會(huì)選擇讓編程者手動(dòng)寫break?是出于什么考慮么?

回答
編輯回答
墨染殤

C#是半默認(rèn)break,你不寫會(huì)編譯器會(huì)發(fā)錯(cuò)誤

2018年6月1日 13:06
編輯回答
離觴

case是從匯編時(shí)代留下來的典型“模式”,匯編時(shí)代有大量的cmp(比較)然后jmp(跳轉(zhuǎn)),是一種非常常用的寫法。C模仿了匯編的cmp+jmp模式設(shè)計(jì)出了switch-case模式,就這樣switch-case就延續(xù)下來了,接下來各種模仿語言也就跟著用了。

2018年9月7日 16:18
編輯回答
小眼睛

go語言就是默認(rèn)break的,想要繼續(xù)執(zhí)行代碼需要手動(dòng)加fallthrough

2018年6月30日 17:15
編輯回答
法克魷

Haxe也是自動(dòng)break。少了break語句少了一點(diǎn)靈活性,但也減少了一些出錯(cuò)的幾率,各有取舍吧

2018年4月7日 16:31
編輯回答
心癌

聽說好像這是設(shè)計(jì)時(shí)的失誤,但是還是被沿用下來了。

2017年12月4日 22:51
編輯回答
放開她

因?yàn)槌薭reak,還有continue

2017年5月1日 22:08
編輯回答
孤星

用switch的時(shí)候。那要是我不要break怎么辦,難道沒這種情況?很多需求下,break也是不需要的。

2018年7月30日 04:35
編輯回答
慢半拍
switch(n)
{
case 1:
case 2:
  執(zhí)行代碼塊 a
  break;
case 3:
  執(zhí)行代碼塊 b
  break;
default:
  xxx
}
// 我想在1和2的時(shí)候都執(zhí)行代碼塊a,你憑啥要給我的case 1加break
2017年10月2日 00:02