C++のswitch文のbreak問題

1048 ワード

今日は筆記試験360で、この簡単だが間違いやすい問題に再び遭遇した.
まず正しい書き方を見てみましょう.
int main()
{
	int i;
	for(i=0;i<3;i++)
	{
		switch(i)
		{                               //switch        
			case 0:                 //     case 0:         
				cout<

プログラム出力は、012にbreakを加えると、適切なcase実行が見つかった後、次のcaseは実行されず、現在のswitch文を終了するという意味です.
-------------------------------------------------------------------------------------------------------------------------------------------------
合格しやすい点はbreakを入れないとどうなるの?
次のコードを見てください.
int main()
{
	int i;
	for(i=0;i<3;i++)
	{
		switch(i)
		{
			case 0:
				cout<

プログラム出力は000122
int main()
{
	int i;
	for(i=0;i<3;i++)
	{
		switch(i)
		{
			case 0:
				cout<

プログラム出力は0012
結論:適切なcaseを見つける前に実行しないで、対応するcaseを見つけた後にすべて実行して、breakあるいはswitch文が終わるまで!