编写C++ if分支代码遇逻辑错误,输入5输出两条结果求助
问题原因分析
你的代码逻辑出错的核心原因是**else分支只和紧邻的第二个if (a==0)配对**,而非你预期的与第一个if (a>0)关联。
当输入5时:
- 第一个
if (a>0)条件成立,输出a is positive; - 接着执行第二个
if (a==0),条件不成立,因此进入对应的else分支,输出a is negative;
这就导致了不符合预期的双输出结果。
修正方案
把第二个独立的if改成else if,让三个分支形成互斥的逻辑链,这样程序只会执行符合条件的那一个分支:
#include <iostream> using namespace std; int main(){ int a; cout<<"Enter the value of a:"; cin>>a; if (a>0){ cout<<"a is positive"<<endl; } else if (a==0){ cout<<"a is zero"<<endl; } else{ cout<<"a is negative"<<endl; } }
修改后输入5时,只会触发第一个if分支,输出a is positive,完全符合预期。
内容的提问来源于stack exchange,提问作者Abhyu_Sha
相关产品推荐
相关产品推荐

