主题:  有没有谈java的,小弟想提个问题啊

阿文2

职务:普通成员
等级:1
金币:0.0
发贴:40
注册:2002/1/7 15:07:15
#12002/1/11 15:53:04
大家好,小弟是一个java的初学者,并且是第一次学习编程,问题可能有些弱智,请大家别见怪。好了闲话休提,以下是一本java教材的例题:


“下面以编写一个Fibonacci数列为例说明嵌套if-else语句的使用方法。Fibonacci数列的定义是:当n=1和n=2时,F(n)=1;当n>=3时,F(n)=F(n-1)+F(n-2)。

//例子3-4编写Fibonacci数列
import java.awt.*;
import java.applet.*;
public class testC04 extends Applet
{
int f[]=new int[20];
public void paint(Graphics g)
{
int i,k;
k=1;
for(i=1;i<18;i++){
if(i==1)
f[i]=1;
else{
if(i==2)
f[i]=1;
else
f[i]=f[i-1]+f[i-2];
}
}
for(i=1;i<18;i++){
g.drawString("F["+i+"]="+f[i],20,k*20);
k++;
}
}
}


小弟看了后想把11~15行的代码改为:

if(i==1||2)
f[i]=1;

即为:

import java.awt.*;
import java.applet.*;
public class testC04 extends Applet
{
int f[]=new int[20];
public void paint(Graphics g)
{
int i,k;
k=1;
for(i=1;i<18;i++){
if(i==1||2)
f[i]=1;
else
f[i]=f[i-1]+f[i-2];
}
for(i=1;i<18;i++){
g.drawString("F["+i+"]="+f[i],20,k*20);
k++;
}
}
}

但是用javac编译后(我用的是jdk1.3.1),老是出现这一句:

testC04.java:11perator || cannot be applied to boolean,int
if(i==1||2)
^
小弟想来想去“||”是逻辑运算符是对布尔型变量进行逻辑运算的,岂有不能用于布尔型变量之理。而至于i,i虽然是int,但这里是i==1||2,是i与1||2的比较,返回的是布尔型变量,运用于||的是1,2啊,难道i==1||2也算是i运用于||吗???小弟实在愚昧请各位高手多多指教。小弟这里有礼了。



suntinge

职务:普通成员
等级:1
金币:0.0
发贴:40
注册:2001/12/7 18:43:14
#22002/1/11 21:47:05
这是语法错误,
你应该把语句改为 if(i==1||i==2),这样应该就没有问题了