我正在编写一个代码猜测程序来测试一些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);
答案 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
的值,但不会直接递增该值,因此您将获得无限循环。