1、s=w=t=0,这里是对变量s,w,t赋值,都赋值为0;
2、w=a-b没有执行,w的值还是前面赋的值0,因为程序执行到第16行if(c<=0)这里,没有进去,因为c>0;
3、t=0, 的确是因为s=w=t=0,第22行的else分支执行不到,因为条件不满足。
测试代码如下:
参考链接:
#include <iostream>
using namespace std;
int main(void){
int a,b,c;
int s,w,t;
// https://www.cnblogs.com/xiaochige/p/6704081.html
// 1、这里是对变量s,w,t都赋值为0
s=w=t=0;
a=-1;
b=3;
c=3;
if(c>0){
s=a+b;
cout<<"执行到1,s="<<s<<endl;
}
if(a<=0){
cout<<"执行到1.1"<<endl;
if(b>0){
cout<<"执行到1.2"<<endl;
// 2,w=a-b没有执行,w的值还是前面赋的值0,因为程序执行到if(c<=0)这里,没有进去,因为c>0
if(c<=0){
w=a-b;
cout<<"执行到2,w="<<w<<endl;
}
}
}else{
cout<<"执行到2.1"<<endl;
if(c>0){
cout<<"执行到2.2"<<endl;
w=a-b;
cout<<"执行到3,w="<<w<<endl;
}else{ // 3. t=0, 的确是因为s=w=t=0,这里的else分支执行不到,因为条件不满足
t=c;
cout<<"执行到4,t="<<t<<endl;
}
}
cout<<"最终值为:"<<endl;
cout<<s<<','<<w<<','<<t<<endl;
return 0;
}
.s=w=t=0
其实就是
t=0;
w=0;
s=0;