1 java variables initialization
import java.util.Scanner;
public class ZodiacSign{
public static void main(String args[]){
Scanner input = new Scanner(System.in);
int Feb,March,ZodiacSign,Pisces,Aquarius,Aries,Taurus;
int selection;
System.out.println("Feb");
System.out.println("Feb 1,2,3,4\n Feb 5,6,7,8\n Feb 9,10,11,12\n Feb 13,14,15,16\n Feb 17,18,19,20\n Feb 21,22, 23, 24\n Feb25,26,27,28\n March 1,2,3,4\n March 5,6,7,8\n March 9,10,11,12\n March 13,14,15,16\n March17,18,19,20\n March 21,22,23,24\n March 25,26,27,28\n March 29,30,31");
System.out.println("Please enter your date of birth");
System.out.println("Please enter your month of birth");
selection = input.nextInt();
if(Feb>= 19){
ZodiacSign = Pisces ;
System.out.println("Your zodiac sign is Pisces");
}
else
{
System.out.println("Your zodiac sign is Aquarius");
}
if(March>=22){
ZodiacSign = Aries;
System.out.println("Your zodiac sign is Aries");
}
else
{
System.out.println("Your zodiac sign is Taurus");
}
System.out.println("End of Program");
}
}
Run Code Online (Sandbox Code Playgroud)
它给了我四个错误:
ZodiacSign.java:19:error: variable Feb might not have been initialized
if(Feb>= 19){
^
ZodiacSign.java:20:error: variable Pisces might not have been initialized
ZodiacSign= Pisces ;
^
ZodiacSign.java:27:error: variable March might not have been initialized
if(March>= 22){
^
ZodiacSign.java:28:error: variable Aries might not have been initialized
ZodiacSign= Aries ;
^
Run Code Online (Sandbox Code Playgroud)
你永远不会给一个值赋值Feb
,所以你期望这个比较能达到什么目的?
if (Feb >= 19)
Run Code Online (Sandbox Code Playgroud)
考虑一下你真正希望通过这种比较实现的目标,然后找出你需要改变的东西来实现它.
通常,在明确赋值之前,您无法从局部变量中读取- 换句话说,直到编译器可以证明您已经通过某个执行路径为其赋值.
但是,我建议您仔细考虑一下您的整体设计,而不是仅仅尝试使用在声明点分配的值进行编译.例如,您可能希望将双鱼座,白羊座等更改为枚举值.
此外,Java代码通常使用pascalCase
局部变量的名称.