Ожидаемая ошибка выражения, несмотря на правильные скобки в Android Studio - PullRequest
0 голосов
/ 20 октября 2018

Я впервые здесь, и я буду стараться изо всех сил следовать всем рекомендациям.

Моя проблема заключается в том, что следующий код Java, используемый в Android Studio, получает ошибки «Выражение ожидается» и «; ожидается "в строке" private void berechnen () {"но a;нигде там не место, и выражение, ожидаемое от того, что я собрал от миллионов других, кто задал этот точный вопрос, приходит, когда функции не закрыты должным образом.

Теперь я проверял снова и снова, но я просто не могукажется, что найдены пропущенные скобки, поэтому ошибка возникает из-за чего-то другого.

У меня вопрос: кто-нибудь знает любую другую причину, которая может быть, и как ее исправить?Большое спасибо заранее.

package com.example.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.databinding.DataBindingUtil;
import android.widget.TextView;

import java.text.DecimalFormat;

public class MainActivity extends AppCompatActivity {

    private double zahl1 = Double.NaN;
    private double zahl2;

    private static final char ADDITION = '+';
    private static final char SUBTRAKTION = '-';
    private static final char MULTIPLIKATION = '*';
    private static final char DIVISION = '/';
    private char derzeitigesinput;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         TextView textView1 = (TextView) findViewById(R.id.textview1);
        Button button1 = (Button) findViewById(R.id.zahl1);

        private void berechnen() {
            if(!Double.isNaN(zahl1)) {
                zahl2 = Double.parseDouble(textView1.getText().toString());
                textView1.setText(null);

                if(derzeitigesinput == ADDITION)
                    zahl1 = this.zahl1 + zahl2;
                else if(derzeitigesinput == SUBTRAKTION)
                    zahl1 = this.zahl1 - zahl2;
                else if(derzeitigesinput == MULTIPLIKATION)
                    zahl1 = this.zahl1 * zahl2;
                else if(derzeitigesinput == DIVISION)
                    zahl1 = this.zahl1 / zahl2;
            }
            else {
                try {
                    zahl1 = Double.parseDouble(textView1.getText().toString());
                }
                catch (Exception e){}
            }
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

э-э ... я также новичок здесь, но я хотел бы предложить это, я думаю, что вы добавили ненужные скобки в конце. Также, если вы посчитаете скобки no.of, то они будут "ODD" в no.следовательно, ошибка говорит, что ожидает оператор перед "}" и затем ";"попробуйте проверить, как только я думаю, что это решит вашу проблему

0 голосов
/ 20 октября 2018

Вы не можете создать функцию внутри другой функции.Ваш berechnen определяется внутри onCreate().Это не сработает!Каждая функция должна быть определена на уровне класса, в Java нет концепции функции, закрытой для другой функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...