public class Fibonacci {//this programe is overflow
static final int MAX=50;
public static void main(String ags[]){
int first=1;
int second=1;
char ;
System.out.println(first);
while(second<MAX){
if((second%2)==0)
='*';
else =' ';
System.out.println(second+);//为什么这样不能输出'*'呢
//System.out.println(second+""+);//这样就可以输出‘*’了 为什么?
//System.out.println();

second=first+second;
first=second-first;
}
}
}我用的是vista系统

解决方案 »

  1.   


    System.out.println(second+); // 因为是字符,跟整形second相加会被转化为整形,所以不能输出'*'
    System.out.println(second+""+); //中间有了个字符串,second和都会被转为字符串后输出
    System.out.println(); //输出字符
      

  2.   

    System.out.println(second+);//为什么这样不能输出'*'呢 
    其实是有输出的,输出的是*的ASCII码,也就是42
    因为int和char相加char会自动转成整形
    System.out.println(second+""+); //中间有了个字符串,second和都会被转为字符串后输出
    和String类型" "相加,int 和 char 都会自动转成String,再进行连接
      

  3.   

    这位已经说的非常明白了String ="*";
    //这样定义就不会有错了