我正在製作一個隨機線條生成器以獲得樂趣。出於某種原因,該程序不使用我在nextInt().
奇怪提供的最大數量,即正常工作的唯一nextInt()
是space.
這裏是我的代碼:Java nextInt()生成負數
public class LineFractal extends Applet {
Random rnd = new Random();
int width = 640;
int height = 640;
int x = 1000;
int endy1 = rnd.nextInt(320);
int endx1 = rnd.nextInt(320);
int starty1 = rnd.nextInt(320);
int startx1 = rnd.nextInt(320);
int space = rnd.nextInt(25);
public void init() {
setSize(width, height);
Frame c = (Frame)this.getParent().getParent();
c.setTitle("Line Generator");
}
public void paint(Graphics g) {
while (x > 0) {
x -= 1;
g.drawLine(startx1, starty1, endx1, endy1);
endy1 += space;
endx1 -= space;
}
g.drawString("Space: " + space, width-100, height-10);
g.drawString("Y (End): " + endy1, width-100, height-20);
g.drawString("Y (Start): " + starty1, width-100, height-30);
g.drawString("X (End): " + endx1, width-100, height-40);
g.drawString("X (Start): " + startx1, width-100, height-50);
}
}
爲什麼這樣做呢?
編輯:只是再次運行它,X(開始)和Y(開始)做的工作,但(結束)整數不。他們會產生一個完全隨機的數字,有時低至-21842。但他們並不總是負面的。
你確定它沒有溢出嗎?您的while循環運行1000次,並且您在每次迭代中爲endy1添加空間。 –
嘗試在while循環之前打印'endy1','endx1'等。它看起來像你修改while循環(運行1000次)中的'endy1'和'endx1'。 –
我認爲您的描述不準確;你說'nextInt()'返回的是負數,但是你沒有解釋你在哪裏看到它們。 – chrylis