因此变量hoursWorked
未初始化。但是,如果我希望它与用户存储的内容相等,我应该如何初始化它?例如,我希望hoursWorked
成为cin
中任何人输出的内容。这是我的代码:
#include <iostream>
using namespace std;
int main ()
{
//Declare Variables
double hoursWorked;
double payRate;
double incomeBeforeTax;
payRate = 15;
incomeBeforeTax = payRate * hoursWorked;
cout << "Enter hours worked: ";
cin >> hoursWorked;
cout << endl;
cout << incomeBeforeTax << endl;
return 0;
}
答案 0 :(得分:1)
通过阅读incomeBeforeTax
初始化后,需要计算引用hoursWorked
cin
的{{1}}。在cin >> hoursWorked;
之后移动该行,它将起作用:
payRate = 15.0;
cout << "Enter hours worked: ";
cin >> hoursWorked;
incomeBeforeTax = payRate * hoursWorked;
cout << endl;
cout << incomeBeforeTax << endl;
与大多数过程语言一样,C ++按照编写顺序对代码进行评估。也就是说,incomeBeforeTax = payRate * hoursWorked;
根据incomeBeforeTax
和payRate
的当前值为hoursWorked
分配值。必须在执行分配之前定义和初始化这些。这就是cin >> hoursWorked
的作用。
在旁注中,double
变量最好使用double
文字进行初始化,因此请将.0
添加到值中。
答案 1 :(得分:0)
使用
incomeBeforeTax = payRate * hoursWorked;
在初始化hoursWorked
之前,您似乎表明incomeBeforeTax
需要的意图。保留该意图的一种方法是创建一个函数,并在需要incomeBeforeTax
时使用该函数。
示例:
#include <iostream>
using namespace std;
int main ()
{
//Declare Variables
double hoursWorked;
double payRate;
// Define a function that encodes the intent of what
// incomeBeforeTax needs to be.
auto incomeBeforeTax = [&]() { return payRate*hoursWorked; };
payRate = 15;
cout << "Enter hours worked: ";
cin >> hoursWorked;
cout << endl;
cout << incomeBeforeTax() << endl;
return 0;
}