如果声明不在Android Studio中编译 - 标识符预期和意外令牌错误
我正在开发一个计算收入与费用的应用程序。我试图根据A到F的收入与费用输出等级。如果声明不在Android Studio中编译 - 标识符预期和意外令牌错误
只有一个问题:我的if循环不会编译。我在Android工作室看到过这种情况发生过一次或两次。不知道原因。也许有人可以帮助解释一下。
if语句给我一个标识符预期和意外的令牌错误。
package ericleeconklin.costoflivingcalculator;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import java.io.*;
import java.io.Console;
public class FinalGrade extends ActionBarActivity {
Bundle b = getIntent().getExtras();
double rentMortgage = b.getDouble("rentmortgage");
double utilities = b.getDouble("utilities");
double insurance = b.getDouble("insurance");
double phoneInternet = b.getDouble("car");
double food = b.getDouble("phone");
double carPayment = b.getDouble("food");
double misc = b.getDouble("misc");
double myIncome = b.getDouble("myincome");
public double totalExpenses = rentMortgage+utilities+insurance+phoneInternet+food+carPayment+misc;
public double expensesToIncome = totalExpenses/myIncome;
//Calculate grade based on expenses to income ratio
String myGrade = "A";
if (expensesToIncome<0.25) {
myGrade = "A";
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_final_grade);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_final_grade, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
你有一个方法以外的代码。这是不允许的。 您应该将此代码放在方法体中,然后调用此方法。例如:
Public String getGrade(double expensesToIncome){
//Calculate grade based on expenses to income ratio
String myGrade = "A";
if (expensesToIncome<0.25) {
myGrade = "A";
}
return myGrade;
}
谢谢。再一次,找不到证明这一点的文件,但它起作用。 –
看看这里:https://docs.oracle.com/javase/specs/ 其中一些是硬核语法规范,但它完全描述了Java语言。 –
我知道oracle文档的位置。我只是不知道它的确切点,它说条件语句必须在方法内。 –
'if'语句只能在里面的方法。 – immibis
你可以使用三元运算符。像'String mygrade = expenseToIncome
谢谢immibis。显示这个的文档在哪里?我一直无法找到任何可以说明这一点的内容,但这是有道理的。 –