Java 错误:变量c可能尚未初始化

Java 错误:变量c可能尚未初始化,java,Java,下面是一个简单的程序,但我不确定编译时为什么会显示错误: class TwoControl { public statis void main (String args[]) { int num,A,C; int B=5; num = 1; A=5; if(num<A) C=A+B; System.out.print("C Value " + C); } } 是编译器编译代码时,不会验证控制语句吗 在上面的示例中

下面是一个简单的程序,但我不确定编译时为什么会显示错误:

class TwoControl {
public statis void main (String args[])  {
     int num,A,C;
     int B=5;
     num = 1;
     A=5;
     if(num<A)
     C=A+B;
     System.out.print("C Value " + C);
  }
}
是编译器编译代码时,不会验证控制语句吗

在上面的示例中,如果条件为真,则初始化或定义值
C
,那么编译器是否为负场景抛出错误?

如果num>=A(条件的相反含义),C将保持未初始化状态

您可以通过使用默认值定义C来修复它,例如
intc=0

如果num>=a(条件的相反含义),C将保持未初始化状态


您可以通过使用默认值定义C来修复它,例如
int C=0

您的变量
C
仅在以下条件下初始化:

if(num<A)
    C=A+B;

变量
C
仅在以下条件下初始化:

if(num<A)
    C=A+B;

再加上Ori所说的,如果将
C
作为类级变量,那么编译器将默认为0,但由于它是一个本地方法,您需要初始化它:

class TwoControl {
    static int C;
public statis void main (String args[])  {
.....

这可以完美地编译。

再加上Ori所说的,如果您将
C
作为类级变量,那么编译器将默认为0,但由于它是一个本地方法,您需要初始化它:

class TwoControl {
    static int C;
public statis void main (String args[])  {
.....

这可以完美地编译。

在声明C时初始化它

Int num,A,C = 0;
或者在作业前在if上添加一个else

    if(num<A)
    C=A+B;
    else
    C = 0;
    System.out.print("C Value " + C);

if(num在声明时初始化C.it

Int num,A,C = 0;
或者在作业前在if上添加一个else

    if(num<A)
    C=A+B;
    else
    C = 0;
    System.out.print("C Value " + C);

如果(num在您的代码片段中,变量C被初始化,只要条件num>A为true,java编译器就无法在编译时理解num>A。然后编译器会建议您,C不能使用,因为它没有初始化,而只是声明。您可以通过以下方式解决初始化C的问题:

int num,A,C=0; 

在您的代码段中,仅当条件num>A为true时变量C才被初始化,如果num>A,java编译器在编译时无法理解。然后编译器会建议您,C不能使用,因为它没有被初始化,而只是声明。您可以通过以下方式解决初始化C的问题:

int num,A,C=0; 

A>=num
时会发生什么?除了下面的答案之外,请遵循java命名约定,而且
statics
是不正确的
static
A>=num
时会发生什么?除了下面的答案之外,请遵循java命名约定,而且
statics
是不正确的
static