关于嵌套语句的小问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 13:50:37
#include<iostream.h>
void main()
{
int a(1),b(6),c(8),d(5);
switch(++a)
{
case 1:c++;
d++;
break;
case 2:switch(++b)
{
case 7:c++;
case 8:d++;
}
case 3:c++;
d++;
break;
case 4:c++;
d++;}
cout<<c<<','<<d<<endl;
}
这是一个关于嵌套语句的程序,输出结果是10,7我不明白是怎么得出的,我是自己看书的,希望各位高手能帮帮忙仔细讲解一下这个程序谢谢了,就是关于"case1,case2......"为什么这么定义啊?还有里面的"++"之类的是怎么弄出结果的啊?拜托了

#include <iostream.h>
void main()
{
int a(1),b(6),c(8),d(5);
switch(++a) // ++a使a=2,执行case 2:
{
case 1:
c++;
d++;
break;
case 2:
switch(++b) // ++b使b=7,执行case 7:
{
case 7:c++; // c++使c=9,没有break,将执行case 8:
case 8:d++; // d++使d=6
} // 没有break,将执行case 3:
case 3:
c++; // c++使c=10
d++; // d++使d=7
break; // 有break,将执行cout语句输出c,d
case 4:
c++;
d++;
}
cout<<c<<','<<d<<endl;
}

switch语句中case到break是一个完整的结构
case (这里是条件):
(要执行的语句;
break;(结束)

if(++i != 0) 表示先做i=i+1的运算再是判断新的i是不是等于0
if(i++ != 0) 表示先做i是不是等于0的判断之后再是i=i+1