初始化变量

初始化变量

问题描述:

import java.util.Scanner; 

public class ExponentExperiment 
{ 
    public static void main(String [] args) 
    { 
     int numberOne; 
     int B; 
     int C; 
     Scanner keyBoard = new Scanner(System.in); 
     System.out.println("Enter an Integer"); 
     numberOne = keyBoard.nextInt(); 
     jordan(numberOne, B); 
     carter(numberOne, B, C); 
     System.out.println(numberOne + " squared is " + B); 
     System.out.println(numberOne + " cubed is " + C); 
    } 
    public static int jordan(int numberOne, int B) 
    { 
     B = numberOne * numberOne; 
    return B; 

    } 
    public static int carter(int numberOne, int B, int C) 
    { 
      C = B * numberOne; 
    return C; 

    } 

} 

错误:初始化变量

H:\ ExponentExperiment.java:13:变量B可能还没有被初始化 约旦(的Numberone,B); ^ H:\ ExponentExperiment.java:14:变量C可能未被初始化 卡特(numberOne,B,C); ^ 2个错误

工具与退出代码完成1

+0

您可以通过以下来改进您的问题:http://stackoverflow.com/help/mcve –

,你必须INT B;和int C;在你的主要方法的顶部,做

int B = 0; 
    int C = 0; 

所以它们被初始化。

+0

这似乎工作。但将声明变量为0不会搞砸该程序? – JavaNovice

+0

不是,因为当你调用这些方法时,你将会使用B和C变量,所以它将会更新它们的值 – user2277872

在Java中,简单类型的变量是按值传递的,所以它不会起作用。 参见:Is Java "pass-by-reference" or "pass-by-value"?

+0

_在Java中,简单类型的变量由value_传递,不仅仅是_simple types_。 Java以价值传递一切。基元和对象之间唯一不同的是,对于基元,java按值传递基元,对于对象,它通过值传递对象_references_。 – BackSlash

+0

这是真的,我只是简化了我的答案。 – Keepsake

为什么你不使用你的返回值?

import java.util.Scanner; 

public class ExponentExperiment 
{ 
    public static void main(String [] args) 
    { 
     int numberOne; 
     int b = 0; 
     int c = 0; 
     Scanner keyBoard = new Scanner(System.in); 
     System.out.println("Enter an Integer"); 
     numberOne = keyBoard.nextInt(); 
     b = jordan(numberOne); 
     c = carter(numberOne, b); 
     System.out.println(numberOne + " squared is " + b); 
     System.out.println(numberOne + " cubed is " + c); 
    } 
    public static int jordan(int numberOne) 
    { 
     return (numberOne * numberOne); 
    } 

    public static int carter(int numberOne, int b) 
    { 
      return (b * numberOne); 
    } 
}