我正在尝试制作一个按钮,第一次点击它说“阿拉巴马”,第二次点击“阿拉斯加”。我正在使用 if 语句,但是当我运行模拟器时,第一次单击时会出现“阿拉斯加”。我做错了什么?
- (IBAction)button1:(id)sender {
hellolabel.text = @"Alabama";
if([hellolabel.text isEqual:@"Alabama"])
hellolabel.text = @"Alaska";
}
我正在尝试制作一个按钮,第一次点击它说“阿拉巴马”,第二次点击“阿拉斯加”。我正在使用 if 语句,但是当我运行模拟器时,第一次单击时会出现“阿拉斯加”。我做错了什么?
- (IBAction)button1:(id)sender {
hellolabel.text = @"Alabama";
if([hellolabel.text isEqual:@"Alabama"])
hellolabel.text = @"Alaska";
}
您的代码排列不正确。
它实际上设置了两个州(阿拉巴马州,然后是阿拉斯加州),但因为它运行得如此之快,你看不到它设置了阿拉巴马州。
因为:
hellolabel.text = @"Alabama";
在if
声明之前,它将设置hellolabel.text
为 Alabama。但是因为该if
语句也包含在同一个动作中,所以它将继续运行它(因为这里的代码是按顺序运行的),而不会停止。由于您只是将 设置hellolabel.text
为 Alabama,因此您的if
语句会将其设置为 Alaska,因为它确实符合它正在检查的标准 ( if([hellolabel.text isEqualToString:@"Alabama"])
)。
正确的代码以便正确检查,如下所示:
- (IBAction)button1:(id)sender {
if([hellolabel.text isEqualToString:@"Alabama"])
{
hellolabel.text = @"Alaska";
}
else
{
hellolabel.text = @"Alabama";
}
}