变量可能尚未初始化

时间:2017-09-18 22:13:45

标签: java

我没有弄错我的代码以及为什么它的错误 - 变量k可能没有被初始化

Iterable

2 个答案:

答案 0 :(得分:0)

不确定您的主要方法/代码是在尝试完成,但变量 library(dplyr) DF <- tibble::rownames_to_column(data.frame(myvec)) DF <- DF[DF$rowname!= "Intercept",] dff <- split(DF , f = substr(DF$rowname, 1, 3) ) dff2 <- dff[[1]]; dff3 <- dff[[2]] dff2$ID <- substr(dff2$rowname, 5, nchar(dff2$rowname)) dff3$ID <- substr(dff3$rowname, 5, nchar(dff3$rowname)) DF2 <- merge(dff2,dff3,by="ID", all = TRUE) DF2 <- DF2[,c(2,4,3,5)] names(DF2) <- c("DEFID", "OFFID", "DEFVAL", "OFFVAL") DF2 DEFID OFFID DEFVAL OFFVAL 1 DEF-1017 OFF-1017 2.30 0.07 2 DEF-1025 OFF-1025 -1.20 0.02 3 DEF-103 OFF-103 -0.09 1.05 4 DEF-1043 <NA> -0.31 NA 5 DEF-1046 OFF-1046 -0.51 -0.02 6 DEF-1048 <NA> 3.40 NA 7 DEF-1076 OFF-1076 3.00 2.03 在您的情况下被视为局部变量。在嵌套的for循环代码块中使用它之前,请考虑使用默认值0初始化int原始数据类型变量k。

int k

来自Java documentation

  

局部变量略有不同;编译器永远不会为未初始化的局部变量分配默认值。如果无法初始化声明它的局部变量,请确保在尝试使用它之前为其赋值。访问未初始化的局部变量将导致编译时错误。

答案 1 :(得分:-2)

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int m = scan.nextInt();
    for (int q = 0; q < m; q++) {
        int a = scan.nextInt();
        int b = scan.nextInt();
        int n = scan.nextInt();
        scan.close();
        int k;
        for (int i = 1; i <= n; i++) {
            k = 0;
            for (int j = 1; j <= i; j++) {
                k = j * b;
            }
            k = k + a;
            System.out.println(k);
        }
    }
}