如何初始化“ hasil”,以便可以在开关功能中使用它?

问题描述 投票:0回答:2

我正在编写一个程序来汇总您的成绩,并以此为基础确定使用if和switch属于哪个班级。但是我似乎无法使if语句对switch语句起作用。错误提示“ java变量hasil可能尚未初始化”

我尝试使用if else并进行切换

import java.util.Scanner;
import java.util.stream.*;
public class Tugas1 {
    public static void main(String[]args){
        int hasil;
        float rata2;
        System.out.println("Input berapa kali anda ujian : ");
        Scanner input=new Scanner(System.in);
        int n=input.nextInt();
        int[] array1 = new int[n];
        for(int i=0;i<n;i++) {
            System.out.println("Nilai ujian "+(i+1)+" :");
            array1[i] = input.nextInt();
        }
        int sum=IntStream.of(array1).sum();
        rata2=sum/n;
        System.out.println("Jumlah nilai anda : "+sum);
        System.out.println("Rata-rata nilai anda : "+rata2);
        if (rata2<=60) hasil=1;
        else if (rata2<=70) hasil=2;
        else if (rata2<=80) hasil=3;
        else if (rata2<=90) hasil=4;
        else if (rata2<=100) hasil=5;
        switch (hasil){
            case 1:
                System.out.println("Anda masuk kelas A");
                break;
            case 2:
                System.out.println("Anda masuk kelas B");
                break;
            case 3:
                System.out.println("Anda masuk kelas C");
                break;
            case 4:
                System.out.println("Anda masuk kelas D");
                break;
            case 5:
                System.out.println("Anda masuk kelas E");
                break;
            default:
                System.out.println("Anda tidak masuk kelas apapun!");
        }

    }
}

我期望输出,例如,如果rata2为<= 60,那么hasil = 1并且输出为“ Anda masuk kelas A”]

java if-statement switch-statement
2个回答
0
投票

问题是您尚未初始化变量hasil。将int hasil;替换为某些默认值,例如int hasil = 0;将使其起作用。


0
投票

hasilif条件下被初始化,因此如果不满足ifelse if条件,并且在您的情况下else也丢失了因此,可以使用一些默认的[hasil=0)值对其进行初始化,或者在其中放置else

© www.soinside.com 2019 - 2024. All rights reserved.