我正在制作数学函数的集合。我使用if语句来创建错误消息并减少用户错误。我不认为我做得对。
string error_0;
string error_i;
if (num1 == 0;) {error_0 = "You cannot divide by zero. Fail."}
else {error_0 = "";}
if (num1=<0;) {error_i = "Sorry, can't do imaginary numbers."} //for sqroot function
else {error_i = "";}
if (num2=<0;) {error_i = "Sorry, can't do imaginary numbers."}
else {error_i = "";}
...这给了我在code :: blocks编译中的以下错误消息。
我是C ++的新手,从示例中我看起来一切都是正确的。帮助将不胜感激。感谢。
答案 0 :(得分:4)
不要将分号放在'()'括号中。另一方面,您必须用分号结束每条指令(并且您没有在第一个'{}'括号中执行此操作)。它应该是:
if (num1 == 0) {error_0 = "You cannot divide by zero. Fail.";}
else {error_0 = "";}
顺便说一下,如果你在if之后使用简单的指令就不必使用括号,也可以这样:
if (num1 == 0)
error_0 = "You cannot divide by zero. Fail.";
else
error_0 = "";
答案 1 :(得分:4)
您需要在字符串后面加分号,而在if
条件下不需要分号。
此外,运营商为<=
,而非=<
。
string error_0;
string error_i;
if (num1 == 0) {error_0 = "You cannot divide by zero. Fail.";}
else {error_0 = "";}
if (num1 <= 0) {error_i = "Sorry, can't do imaginary numbers.";} //for sqroot function
else {error_i = "";}
if (num2 <= 0) {error_i = "Sorry, can't do imaginary numbers.";}
else {error_i = "";}
答案 2 :(得分:1)
string error_i;
if (num1=<0;) {error_i = "Sorry, can't do imaginary numbers."}
else {error_i = "";}
<=
(小于或等于)而不是=<
if (expression) { [first-statement-when-true; [second...;]] } else { [first-statement-when-false; [second...;]] }
这足以让它工作,但std::string
默认构造函数本身就是“”,所以你根本不需要else { error_i = ""; }
代码......
string error_i;
if (n <= 0)
error_i = "Sorry, can't do imaginary numbers.";
或者,你可以捕捉原作的这种或那种感觉,并立即给error_i
一个有意义的值,如:
string error_i = n <= 0 ? "Sorry, can't..." : "";
在上方,?
和:
根据先前表达式(n <= 0
)的真值选择它们之间或之后的值,然后将其指定为{{的初始值1}}。有些人会认为这很糟糕,因为将error_i
设置为std::string
是毫无意义的,可能效率稍低(无论如何它们在默认构造后都是空的),但是使用明确表达您对该程序的思考的代码是通常更重要。