为了账号安全,请及时绑定邮箱和手机立即绑定

嵌套 while 循环被执行,外循环不执行

嵌套 while 循环被执行,外循环不执行

千巷猫影 2021-10-17 15:38:26
我对 Java 很陌生,目前,我正在研究 Vigenere 密码解密/加密。我已经使用已知密钥进行了解密和加密,我现在唯一想做的就是字典攻击。为此,算法从文本文件中取出一行并将其用作解密消息的密钥,然后获取解密后的消息并再次将其与字典进行交叉引用(如果密钥生成了合法的单词,它将使用该密钥解密消息的其余部分)。public static String decoderNoKey(String msg, Scanner words) {Scanner words2 = words;while (words.hasNextLine()) {  String dicStr = words.nextLine();  String result = decoder(msg, dicStr);  while (words2.hasNextLine()) {    String meta = words2.nextLine();    if(result.equalsIgnoreCase(meta)) {      System.out.println("Found a matching message: " + result);      System.out.println("This is the corresponding key: " + dicStr);      return meta;    }  } }  return "There was no matching word";}这是我的代码,解码器();方法工作得很好。如果我尝试输入合法密码,问题是,外部 while 循环仅执行一次(发现超出打印语句)。单词文件也很大,84000 多个单词。
查看完整描述

1 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

words2不是 的副本words。这是一个新名称,指的是同一个对象......所以你的内循环正在耗尽你的扫描仪,而你的外循环不再有任何事情要做。


查看完整回答
反对 回复 2021-10-17
  • 1 回答
  • 0 关注
  • 283 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信