我在使用一些javascript do while循环时遇到了麻烦

时间:2014-11-26 20:00:02

标签: javascript do-while

我正在编写一个代码猜测程序来测试一些iPhone密码的安全性(这无论如何都与非法的任何东西相关或用于打破实际的iPhone)。 do / while循环只在它们发生时结束所有响应,并且最后两行不会打印到控制台。

print("Hi!");
print("I am a password security tester.");

var tries = 0

var guess1 = 0
var guess2 = 0
var guess3 = 0
var guess4 = 0

var guess = (guess1 * 1000) + (guess2 * 100) + (guess3 * 10) + guess4;

var password1 = (Math.floor(Math.random()*9));
var password2 = (Math.floor(Math.random()*9));
var password3 = (Math.floor(Math.random()*9));
var password4 = (Math.floor(Math.random()*9));

var password = (password1 * 1000) + (password2 * 100) + (password3 * 10) + password4;

print("This is the randomly genorated password: " + password);
print("And now begins the guessing");

do{
    guess1 + 1;
    tries + 1;
}while (password1 != guess1);

do{
    guess2 + 1;
    tries + 1;
}while (password2 != guess2);

do{
    guess3 + 1;
    tries + 1;
}while (password3 != guess3);

do{
    guess4 + 1;
    tries + 1;
}while (password4 != guess4);

print("Complete in " + tries + " tries");
print("The answer is: " + guess);

2 个答案:

答案 0 :(得分:3)

Jacob Ewing's answer是正确的,但另一个问题是guess最后仍为0,因为它不会自动更新。你需要这样做:

var guess = (guess1 * 1000) + (guess2 * 100) + (guess3 * 10) + guess4;

在:

print("Complete in " + tries + " tries");
print("The answer is: " + guess);

答案 1 :(得分:1)

您需要使用+=运算符,而不仅仅是+

假设guess1 + 1返回guess1 + 1的值,但不会直接递增该值,因此您将获得无限循环。