我的这个Java编程哪里错了呢?
来源:百度知道 编辑:UC知道 时间:2024/06/24 15:22:14
public class Bulb
{
public int on;
public int off;
public Bulb (int i)
{
turn();
}
public boolean turn()
{
return(on==off);
}
public int getOn()
{
if (on>0)
on++;
return on;
}
public int getOff()
{
if (off>0)
off++;
return off;
}
public boolean isOn() {
// TODO Auto-generated method stub
return false;
}
}
这个上面是第一部分
public class Lights
{
final int turn=100;
int on=0, off=0;
Bulb myBulb=new Bulb();
for (int i = 0; i <= turn; i++)
{
myBulb.turn();
if (myBulb.isOn())
{
on++;
}
else
{
off++;
}
}
System.out.println("number of turn: "+turn);
Sys
{
public int on;
public int off;
public Bulb (int i)
{
turn();
}
public boolean turn()
{
return(on==off);
}
public int getOn()
{
if (on>0)
on++;
return on;
}
public int getOff()
{
if (off>0)
off++;
return off;
}
public boolean isOn() {
// TODO Auto-generated method stub
return false;
}
}
这个上面是第一部分
public class Lights
{
final int turn=100;
int on=0, off=0;
Bulb myBulb=new Bulb();
for (int i = 0; i <= turn; i++)
{
myBulb.turn();
if (myBulb.isOn())
{
on++;
}
else
{
off++;
}
}
System.out.println("number of turn: "+turn);
Sys
最后你会得出 有100个灯泡, 0 个灯泡是亮的, 101个灯泡是暗的.
为什么有101个暗灯泡呢? 因为 :
if (myBulb.isOn())
{
on++;
}
else
{
off++;
}
}
你的 myBulb.isOn() 每次都是返回 false, 就永远执行 off++ ,而你的for循环是从 0 开始的, i <= turn 即 i<=100, 你从0到100 共循环101 次, 所以最后就出现101 个暗灯泡!
不应该让 i<=100, 改为i<100