| * |
| * |
| * |
| * |
| * |
| * |
| * |
| * |
| * |
| * |
| * |
| * |
|* |
我需要为赌徒的废墟问题打印上面的 ASCII 图。将赌注和目标作为参数。最左边| 代表0美元,最右边| 代表目标,* 代表手头现金。我的程序如下:
public class RuinPath {
public static void main(String[] args) {
// TODO - Your solution
int stake = Integer.parseInt(args[0]); // gambler's stating bankroll
int goal = Integer.parseInt(args[1]); // gambler's desired bankroll
{
int i = 0;
if (i == 0) {
System.out.print("|");
i++;
while (i < stake) {
System.out.print(" ");
i++;
if (i == stake) {
System.out.print("*");
i++;
while (i > stake && i < goal) {
System.out.print(" ");
i++;
if (i == goal) {
System.out.print("|");
i = 0;
System.out.println();
{
if (Math.random() < 0.5) {
stake++; // win $1
} else {
stake--; // lose $1
}
if (stake == 1 || stake == goal - 1);
break;
}
}
}
}
}
}
}
}
}
该程序打印的内容是:
| * |
* |
* |
* |
* |
* |
* |
* |
* |
* |
* |
* |
* |
* |
*
为什么我的程序不循环,这样我就可以得到最左边 | 似乎一直代表 0 美元?我有它所以 i = 0; 在循环结束时,当它返回时它应该重新循环,直到赌注为 1 或小于目标。相反,它从程序中间重新循环。