2016-01-06 29 views
0

我正在創建一個程序來加密一條消息。我計劃通過運行代碼的功能之一是一個循環密碼。它一直沒有工作,我不知道爲什麼。在某些時候,程序將返回正確的字母,而在其他時間,它不會改變任何內容並返回與輸入相同的字符。任何建議表示讚賞。Circle密碼程序

function circle(message, rotate) { 
var alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]; 
for(i = 0; i < message.length; i++) { 
    for (i = 0; i < alphabet.length; i++) { 
     if (message[i] == alphabet[i]) { 
      message[i] = alphabet[i + rotate]; 
      break; 
     } 
    } 
} 
return message; 

}

回答

1

我發現在你的代碼至少有三個缺陷:

  • 您使用變量i兩次。您應該爲內部循環使用另一個變量名稱。
  • 您必須使用餘數(模數)運算符來獲取值i + rotate模26.模式爲
  • 字符串是不可變的。所以你不能改變一個字符串的單個字符。
+0

你是正確的前兩個,我忘了提及我喂這個函數數組而不是字符串。感謝您的幫助,現在正在開展工作。 – R0ckl0v3r122