DeathVenom
DeathVenom

Reputation: 394

Compiler says variable has not been initialized

I am a beginner in Java and Android Studio. I made a (somewhat complex) calculator that calculated fractions along with whole numbers and also mixed fractions. It works by first converting the number entered (whichever format it may be in) into a fraction and then calculating. Here's a part of the code:

buttonAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String fraction_1 = editTextNum1.getText().toString();
                String fraction_2 = editTextNum2.getText().toString();
                int Num1, Den1, Num2, Den2;
                if (fraction_1.contains("/") && !fraction_1.contains(" ")){
                    Num1 = Integer.parseInt(getFraction(fraction_1)[0]);
                    Den1 = Integer.parseInt(getFraction(fraction_1)[1]);
                } else if (fraction_1.contains(" ") && fraction_1.contains("/")){
                    int[] frac1 = convertFromMixed(fraction_1);
                    Num1 = frac1[0];
                    Den1 = frac1[1];
                }
                else if (!fraction_1.contains("/")) {
                    Num1 = Integer.parseInt(fraction_1);
                    Den1 = 1;
                }
                else{
                    invalidinput invalidinput = new invalidinput();
                    invalidinput.show(getSupportFragmentManager(), "num1error");

                }
                if (fraction_2.contains("/") && !fraction_2.contains(" ")){
                    Num2 = Integer.parseInt(getFraction(fraction_2)[0]);
                    Den2 = Integer.parseInt(getFraction(fraction_2)[1]);
                } else if (fraction_2.contains(" ") && fraction_2.contains("/")){
                    int[] frac2 = convertFromMixed(fraction_1);
                    Num2 = frac2[0];
                    Den2 = frac2[1];
                }
                else if (!fraction_2.contains("/")){
                    Num2 = Integer.parseInt(fraction_2);
                    Den2 = 1;
                } else{
                    invalidinput invalidinput = new invalidinput();
                    invalidinput.show(getSupportFragmentManager(), "num2error");

                }

                int commonDen = getLCM(Den1, Den2);
                Num1 = (commonDen/Den1)*Num1;
                Num2 = (commonDen/Den2)*Num2;
                int addNum = Num1 + Num2;

                if (simplify.isChecked()){
                    String result = simplify(addNum, commonDen);
                    result = checkFor1(result);
                    result = checkForWhole(result);


                    textViewResult.setText(result);
                } else {
                    String result = addNum + "/" + commonDen;
                    result = checkFor1(result);
                    textViewResult.setText(result);
                }
            }
        });

I'm getting an error at the last part, where commonDen is calculated. It says that Num1, Num2, Den1 and Den2 have not been initialized. This is just the addition part. I'm getting an error wherever these variables are used for calculation. Please help.

Upvotes: 2

Views: 43

Answers (1)

Jackson
Jackson

Reputation: 1223

So you have to initialize the variables. You can do it by

changing

int Num1, Den1, Num2, Den2;

to

int Num1 = 0, Den1 = 0, Num2 = 0, Den2 = 0;

Upvotes: 2

Related Questions