gpt4 book ai didi

objective-c - 已声明但未设置的变量评估为真?

转载 作者:搜寻专家 更新时间:2023-10-30 19:55:28 25 4
gpt4 key购买 nike

我用下面的代码做了一个简单的计算器。现在它完美地执行。然而,当我试图改变周围的事物时,它不起作用。我使用 BOOL 程序 来检查是否继续要求该人输入或完成该程序。

如果我将 while 语句的表达式更改为 (program) 并更改 YES/NO program 语句,为什么代码无法执行 while 中的操作?

// A simple printing calculator
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]
Calculator *deskCalc = [[Calculator alloc] init];
double value1;
char operator
BOOL program;

[deskCalc setAccumulator: 0];

while (!program) {
NSLog (@"Please type in your expression");
scanf (" %lf %c", &value1, &operator);
program = NO;

if (operator == '+') {
[deskCalc add: value1];
}
else if (operator == '-') {
[deskCalc subtract: value1];
}
else if (operator == '*' || operator == 'x') {
[deskCalc multiply: value1];
}
else if (operator == '/') {
if (value1 == 0)
NSLog (@"Division by zero!");
else
[deskCalc divide: value1];
}
else if (operator == 'S') {
[deskCalc set: value1];
}
else if (operator == 'E') {
[deskCalc accumulator];
program = YES;
}
else {
NSLog (@"Unknown operator");
}
}

NSLog (@"The result is %f", [deskCalc accumulator]);

[deskCalc release];

[pool drain];
return 0;
}

最佳答案

您还没有设置 program 的初始值,因此它默认为一个垃圾值,恰好 为非零值。

声明时设置program的初始值:

BOOL program = NO; // or YES, whichever is appropriate

关于objective-c - 已声明但未设置的变量评估为真?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7518686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com