使用if语句中已更改的变量

时间:2012-10-21 15:46:35

标签: android if-statement

我构建了两个活动,MainActivity将一些变量传递给活动“计算”。这可以按预期工作,并且可以正确地提交和接收变量。我现在想要根据意图“大小”的值创建整数“size_int”。问题出现在这一行:

    debug1.setText(size_int);
Eclipse告诉我,我应该创建一个名为“size_int”的局部变量。我不明白为什么“size_int”不能在这一行中使用,因为它已在之前的if语句中定义。你有什么想法吗?我假设有一些事情要做,变量“size_int”在if语句中定义,但我不确定。

以下是完整代码:

package com.example.eggtimer;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class Calculation extends Activity {



    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.calculation);


        // get Intents (Size, Temperature and yolk from Main Activity)
        String size = getIntent().getExtras().getString("size");
        String temperature = getIntent().getExtras().getString("temperature");
        String yolk = getIntent().getExtras().getString("yolk");

        if (size.equals("Small")) {
            int size_int = 30;
        }



        // Debug Variables
        TextView debug1 = (TextView) findViewById(R.id.textViewDebug1);


        debug1.setText(size_int);

    }



}

2 个答案:

答案 0 :(得分:0)

如下更改。这是因为如果你在大括号内声明,范围是受限制的,所以你需要通过声明外部来增加范围

int size_int = 0; 
if (size.equals("Small")) {
            size_int = 30;
}

答案 1 :(得分:0)

您需要阅读名为"变量范围"的概念。通常,代码块中的变量声明对于该代码块是 local ,并且在外部不可见。因此,您应该在size_int之外声明if()

    int size_int = 0;
    if (size.equals("Small")) {
        size_int = 30;
    }

通常,在代码块外部声明的变量在块中可见,而在代码块内声明的变量对于该代码块是本地的。