2015-11-13 51 views
-1

最近我试图自动化JavaScript的编码,当我遇到一些我的变量的问题。基于Java中的另一个int更改int

Scanner scan = new Scanner(System.in); 
System.out.print("Enter x start coordinate: "); 
int xCoord = scan.nextInt(); 
System.out.print("Enter y start coordinate: "); 
int yCoord = scan.nextInt(); 
String more = "y"; 
int num1 = 0 + xCoord; 
int num2 = 5 + yCoord; 
int num3 = 13 + xCoord; 
int num4 = 10 + yCoord; 
System.out.println("ctx.moveTo(" + num1 + "," + num2 + ");" 
     + "\nctx.lineTo(" + num3 + "," + num4 + ")\n" 
     + "Mid Point: " + num3 + "," + num4); 
System.out.print("Again?: "); 
more = scan.next(); 
while (more.equals("y")) 
{ 
    System.out.println("Enter a direction (above, left, right): "); 
    String nextDir = scan.next(); 
    if (nextCube.equals("right")) 
    { 
     xCoord += 13; 
     yCoord += 5; 
    } 
    else if (nextDir.equals("left")) 
    { 
     xCoord -= 13; 
     yCoord += 5; 
    } 
    else if (nextDir.equals("above")) 
    { 
     yCoord -= 18; 
    } 
    System.out.println("ctx.moveTo(" + num1 + "," + num2 + ");" 
     + "\nctx.lineTo(" + num3 + "," + num4 + ")\n" 
     + "Mid Point: " + num3 + "," + num4); 
    System.out.print("Again?: "); 
    more = scan.next(); 
} 

我发现,要求朝的XCOORD和YCOORD变量的变化移动方向,但“民”的变量并没有随着新的值更新后。我知道在我的思维过程中一定有什么问题会影响Java中依赖变量的工作方式,但我不知道是什么。请帮助!

+2

你有使用调试器了吗? –

+1

当你说“因变量”时,这听起来像你认为,当xCoord变化时,不知何故num1动态更新? – Bill

+3

不知道为什么所有的downvotes。这是一个基于关于变量声明如何工作的基本误解的初学者问题,但它包含了回答它所需的所有元素。 –

回答

1

也许你需要在循环更新“NUM”变量,如:

while (more.equals("y")) 
{ 
    ... 

    // Add below codes 
    num1 = 0 + xCoord; 
    num2 = 5 + yCoord; 
    num3 = 13 + xCoord; 
    num4 = 10 + yCoord; 

    System.out.println("ctx.moveTo(" + num1 + "," + num2 + ");" 
     + "\nctx.lineTo(" + num3 + "," + num4 + ")\n" 
     + "Mid Point: " + num3 + "," + num4); 
    System.out.print("Again?: "); 
    more = scan.next(); 
} 
+0

@ user2316502非常感谢:-) –