int到byte,"无法解析为变量".怎么了?

Lon*_*rts 0 java int byte

这有什么问题;

public class cast {

    public static void main(String args[]){
        double x, y; 
        int i;
        char c; 

        x = 10.0; 
        y = 3.0; 

        i = (int) (x / y); 
        System.out.println("Integer outcome of x / y = " + i); 

        i = 100; //Assaigning new value to i. 

        b = (byte) i;  
        System.out.println("The value of i is: " + b); 

    }

}
Run Code Online (Sandbox Code Playgroud)

它给我以下错误信息; b无法解析为变量.

虽然我完全按照他们在书中所做的那样做(我想,重读这本书的指令就像五次......)

Sim*_*mon 5

b在您的示例中不是声明的变量.在使用变量之前,您必须声明它.如果你不这样做,Java就不知道b代表什么,也不知道如何处理它.尝试

byte b = (byte) i; 
Run Code Online (Sandbox Code Playgroud)

代替.或者,您也可以添加该行

byte b;
Run Code Online (Sandbox Code Playgroud)

到你的程序的开头.这告诉Java你希望b是一个可以保存一个字节的变量.