【问题标题】:If statments are always executedif 语句总是被执行
【发布时间】:2016-01-31 23:30:00
【问题描述】:

帮助

#include <iostream>
#include <math.h>
using namespace std;
const float pi = 3.14;
void Odabir(int);
int main(){
    int choose;
    cout << "Odaberite 1 2 ili 3" << endl;
    cin >> choose;
    Odabir(choose);
    return 0;
}
void Odabir(int choose){
    if (choose = 1){
        float b, vb;
        cout << "Unesite duljinu stranice b: " << endl;
        cin >> b;
        cout << "Unesite duljinu visine na stranicu b vb: " << endl;
        cin >> vb;
        cout << "Povrsina raznostranicnog trokuta je: " << ((b*vb) / 2) << endl;
    }
    if (choose = 2){
        float r;
        cout << "Unesite duljinu polumjera: " << endl;
        cin >> r;
        cout << "Povrsina kruga je: " << pow(r, 2)*pi << endl;
    }

}

我已经尝试解决了几个小时,但我无法通过它,看起来当我设置选择值时,所有三个 if 子句都被执行和打印。

【问题讨论】:

  • 您可能希望使用switch 而不是ifs。

标签: c++ if-statement assignment-operator comparison-operators


【解决方案1】:

您在函数的 if 语句中使用了赋值运算符 ( = ),而不是比较运算符 ( == )

例如

if (choose = 1){
          ^^^ 

改写

if (choose == 1){
          ^^^^ 

【讨论】:

    【解决方案2】:

    您正在分配变量选择,而不是在 Odabir 函数内进行比较。

    比如选择= 1 应该选择== 1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多