【发布时间】:2014-01-07 17:21:34
【问题描述】:
-我在 if/else 部分或下面的代码中遇到“令牌“布尔”的语法错误,无效的表达式”错误。在所有“else/if”行上出现此错误 3 次。
-我遇到的另一个错误是在最后一个“else”上,我必须插入一个“;”在没有解决任何问题的语句之后。
package com.dey2929.bmihealth;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.widget.TextView;
public class ResultActivity extends Activity {
TextView result;
TextView review;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
result = (TextView) findViewById(R.id.tvmybmi);
review = (TextView) findViewById(R.id.review);
Intent intent = getIntent();
String YourBmi = intent.getStringExtra("YourBmi");
result.setText(" Your BMI is: " + YourBmi);
if (boolean.valueof(YourBmi) <= 18.0)
{
review.setText("You are Underweight ");
}
else if ((boolean.valueof(YourBmi) > 18.0 && boolean.valueof(YourBmi) < 25.0 ))
{
review.setText("You are Normal (healthy weight) ");
}
else ((boolean.valueof(YourBmi)) > 25.0)
{
review.setText("You are Overweight");
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.result, menu);
return true;
}
@Override
protected void onPause() {
super.onPause();
finish();
}
}
更新:
EDIT- 仅在最后一个 else 行留下错误,即
- 赋值的左边必须是一个变量 - 语法错误,插入“;”完成声明
- 插入赋值运算符表达式以完成赋值。
修改代码:
package com.dey2929.bmihealth;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.widget.TextView;
public class ResultActivity extends Activity {
TextView result;
TextView review;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
result = (TextView) findViewById(R.id.tvmybmi);
review = (TextView) findViewById(R.id.review);
Intent intent = getIntent();
String YourBmi = intent.getStringExtra("YourBmi");
result.setText(" Your BMI is: " + YourBmi);
if (Float.parseFloat(YourBmi) <= 18.0)
{
review.setText("You are Underweight ");
}
else if ((Float.parseFloat(YourBmi) > 18.0 && Float.parseFloat(YourBmi) < 25.0 ))
{
review.setText("You are Normal (healthy weight) ");
}
else (Float.parseFloat(YourBmi) > 25.0)
{
review.setText("You are Overweight");
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.result, menu);
return true;
}
@Override
protected void onPause() {
super.onPause();
finish();
}
}
【问题讨论】:
-
boolean.valueof(YourBmi)那是什么?可能你在找Double.valueOf(bmi) <= 18.0 -
我把我的答案放在下面。你必须把 else if 放在最后一个 else 中。
-
我说你最后一个 else lite 从 else 到 else if。我在下面的答案中写了它。