Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 变量可能尚未初始化_Java - Fatal编程技术网

Java 变量可能尚未初始化

Java 变量可能尚未初始化,java,Java,我不知道我的代码出了什么问题,也不知道为什么它会出错-变量k可能没有初始化 import java.util.*; public class kk { 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(); i

我不知道我的代码出了什么问题,也不知道为什么它会出错-变量k可能没有初始化

import java.util.*;
public class kk
{
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++)
    {
        for(int j=1;j<=i;j++)
        {
           k=j*b;
        }
        k=k+a;
        System.out.println(k);
        k=0;
    }}
}
}
import java.util.*;
公共类kk
{
公共静态void main(字符串[]args)
{
扫描仪扫描=新扫描仪(System.in);
int m=scan.nextInt();
对于(int q=0;q
publicstaticvoidmain(String[]args){
扫描仪扫描=新扫描仪(System.in);
int m=scan.nextInt();
对于(int q=0;q对于(int i=1;i < p>)不确定您的主要方法/代码试图完成什么,但变量<代码> int k>代码>在您的情况下被视为局部变量。请在使用嵌套for循环代码块之前考虑默认值为0的初始化int原始数据类型变量k。

int k = 0;
从:

局部变量略有不同;编译器从不为未初始化的局部变量指定默认值。如果无法在声明局部变量的位置初始化它,请确保在尝试使用它之前为它指定一个值。访问未初始化的局部变量将导致编译时错误


错误很明显;您正在声明变量,但没有在循环之前使用值初始化它。
k=k+a;
的值应该是什么,如果
k
从未被赋予初始值?正如警告所说。变量
k
没有初始化。在Java中,与实例不同,局部变量没有被初始化为默认值变量。必须手动初始化局部变量,例如,
int k=0
解决“k可能尚未初始化”但是改变了程序的含义。两者都有'k=0;'它们的某个地方并不相同,凯文·安德森-你确定吗?我确定程序中语句的顺序很重要吗?嗯,是的。仔细看看原始程序的逻辑,@pranav在控制台上打印完k的结果后,将其值设置为0(使其重新启动),从而避免“k可能尚未初始化”,并得到预期在该位置初始化为“k”的结果。
int k = 0;