C++ 如何在switch语句之后向另一个变量添加变量
我提前表示歉意,因为对于我要问的问题,我找不到更好的措辞,所以我不妨在这里解释一下。我最近得到了《C++如何编程第九版》,我一直在练习,我在第五章。我的问题是,在我的代码中,当在while循环中向另一个变量添加total时,我遇到了麻烦。基本上我每次都会得到0,我不知道我做错了什么。有没有人愿意透露一些情况,并向我解释下一次我能做得更好?我的意思是代码本身运行良好,没有错误,但我只是在计算中遇到了麻烦C++ 如何在switch语句之后向另一个变量添加变量,c++,C++,我提前表示歉意,因为对于我要问的问题,我找不到更好的措辞,所以我不妨在这里解释一下。我最近得到了《C++如何编程第九版》,我一直在练习,我在第五章。我的问题是,在我的代码中,当在while循环中向另一个变量添加total时,我遇到了麻烦。基本上我每次都会得到0,我不知道我做错了什么。有没有人愿意透露一些情况,并向我解释下一次我能做得更好?我的意思是代码本身运行良好,没有错误,但我只是在计算中遇到了麻烦 #include <iostream> #include <iomanip&
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
int selection = 0;
float total = 0.0;
float lastTotal = 0.0;
float product1 = 2.98;
float product2 = 4.50;
float product3 = 9.98;
float product4 = 4.49;
float product5 = 6.87;
bool loop = true;
while (loop == true)
{
cout << "Please make a selection from the following items and when you are done buying (-1) the products I will display your total\n" << endl;
cout << "1: $" << product1 << endl;
cout << "2: $" << product2 << endl;
cout << "3: $" << product3 << endl;
cout << "4: $" << product4 << endl;
cout << "5: $" << product5 << endl << endl;
total += lastTotal;
cin >> selection;
cout << "\n";
switch (selection)
{
case 1:
cout << "You have selected Product 1 which costs $2.98\n" << endl;
total = product1;
break;
case 2:
cout << "You have selected Product 2 which costs $4.50\n" << endl;
total = product2;
break;
case 3:
cout << "You have selected Product 3 which costs $9.98\n" << endl;
total = product3;
break;
case 4:
cout << "You have selected Product 4 which costs $4.49\n" << endl;
total = product4;
break;
case 5:
cout << "You have selected Product 5 which costs $6.87\n" << endl;
total = product5;
break;
case -1:
cout << "Thank you. Your total is: " << lastTotal << endl;
loop = false;
break;
default:
cout << "Invalid selection" << endl;
}
}
}
也作为旁注。这些警告到底是什么意思?我没有看到他们破坏我的代码,但当我运行代码时,他们会弹出,这与我有关
total = product1;
此行将总计设置为product1
。它不会将product1
添加到总数中
total = total+value
像往常一样,计算机完全按照您告诉它的操作,并使用product1
的值覆盖total
。产品2、3、4和5也会发生类似的情况
此行将总计设置为product1
。它不会将product1
添加到总数中
total = total+value
像往常一样,计算机完全按照您告诉它的操作,并使用
product1
的值覆盖total
。产品2、3、4和5也会发生类似的情况。若要向总计添加一个值,请将总和指定给总计
total = total+value
标准规定主函数应该返回int
int main()
若要向总计添加值,请将总和指定给总计
total = total+value
标准规定主函数应该返回int
int main()
您不需要使用lastTotal和total。仅仅使用total就可以了。lastTotal从未分配或更改
cout << "Thank you. Your total is: " << lastTotal << endl;
main必须是int 您不需要使用lastTotal和total。仅仅使用total就可以了。lastTotal从未分配或更改
cout << "Thank you. Your total is: " << lastTotal << endl;
main必须是int 这是您应该使用调试器的地方。您应该对程序终止感兴趣。代码中的哪些行会导致程序终止?你为什么要走到那条线?@dodexahedron嘿。这是另一件事,是我有麻烦的调试器。我将断点放在while循环的开头,然后单击debug和run。我注意到,total确实保存在switch语句中,但只要我想将total保存到另一个变量中,它就只输出0,我不确定为什么要警告C4305:“初始化”:从“double”截断为“float”,我每次运行时都会收到4次警告,但目前我并不担心,这是另一个需要担心的问题。对于浮点警告,文本浮点(
1.0
,2.98
,等等)是类型double
。如果您想要float
literals.Bah,请在末尾钉上一个f
,2.98f
。我希望人们没有给出答案,但是是的-问题是您根本没有设置要输出的值。这是您应该使用调试器的地方。您应该对程序终止感兴趣。代码中的哪些行会导致程序终止?你为什么要走到那条线?@dodexahedron嘿。这是另一件事,是我有麻烦的调试器。我将断点放在while循环的开头,然后单击debug和run。我注意到,total确实保存在switch语句中,但只要我想将total保存到另一个变量中,它就只输出0,我不确定为什么要警告C4305:“初始化”:从“double”截断为“float”,我每次运行时都会收到4次警告,但目前我并不担心,这是另一个需要担心的问题。对于浮点警告,文本浮点(1.0
,2.98
,等等)是类型double
。如果您想要float
literals.Bah,请在末尾钉上一个f
,2.98f
。我希望人们没有给出答案,但是是的-问题是你根本没有设置你想要输出的值。非常感谢。我不知道为什么我在这个问题上被难住了这么久,而答案就在那里。你看,我已经做了大约两个小时了,只是尝试了不同的东西。我用这个作为最后的手段,所以非常感谢你的快速回复。我不知道为什么我在这个问题上被难住了这么久,而答案就在那里。你看,我已经做了大约两个小时了,只是尝试了不同的东西。我用这作为最后手段,所以谢谢你的快速回复