在C++里支持else if 这种分支条件判断吗?
编译环境:32位 XP, VC++ 6.0
我在写下面这个代码,其中函数cm用于计算v1 的 v2次幂,当我输入 2,3时正确,结果为8,但是当我输入2 , -3时,却显示为1了。我经过调试发现,当执行到下面注释部分条件后的语句,v2就直接为0了(开始的时候v2还是等于-3的)。请大家帮忙看看。
#include <iostream>using namespace std;int main(){ double cm(int v1, int v2); cout << "Enter 2 int numbers:" << endl; int a,b; cin >> a >> b; double result; result = cm(a, b); cout << "The result is: " << result << endl; return 0;}double cm(int v1, int v2){ double temp = 1; if ( v2 > 0) { while ( v2 != 0 ) { temp *= v1; --v2; } } else if(v2 = 0) temp = 1; else { v2 = -v2; //这里的时候,v2 就直接为0了,在这前面显示一直为-3的。 while ( v2 != 0 ) { temp *= v1; --v2; } temp = 1/temp; } return temp;}