If 语句未在 Android Studio 中编译 - 标识符预期和意外标记错误

If statement not compiling in Android Studio - identifier expected and unexpected token error

我正在开发一个计算收入与支出的应用程序。我正在尝试根据收入与支出从 A 到 F 输出成绩。

只有一个问题:我的 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;
}