我在另一个'for循环'中的'for循环'不起作用

sup*_*tar 2 java eclipse for-loop nested-loops

for (int i=0; i<Intlength; i++){ 
    int intPosition; 
    intPosition=strAlphabet.indexOf(strMessage.charAt(i));
    System.out.println(intPosition); 
    System.out.println("BREAK"); 
    for (int k=0; k<Intlength2; k++){ 
       int intPosition2; 
       intPosition2=strAlphabet.indexOf(strKeyword.charAt(k));
       System.out.println(intPosition2);                
       System.out.println("BREAK-------------"); 
    }
}
Run Code Online (Sandbox Code Playgroud)

我会要求用户输入两个单词.一个是消息,一个是关键字.

上面的第一个循环将检查是否我将添加1,并打印出第一个字母位置编号.例如,如果消息是"红色".我首先想要它输出位置编号"r",即17.然后它继续移动到第二个循环,并对关键字执行完全相同的操作.例如,如果关键字是"cat",我希望它打印第一个字母的第一个字母位置,在这种情况下,"c"的位置值为2.这样我希望输出如下:

  • 消息的第一个字母位置

  • 关键字的第一个字母位置

  • 消息的第二个字母位置

  • 关键字的第二个字母位置

等等

因此坚持消息"红色"和关键字"猫"我想要输出如下:

17
2
4
0
3
19
Run Code Online (Sandbox Code Playgroud)

我已经添加了中断文本来区分我的编码发生了什么,这就是结果.

Please give me a message:
red
Thank you! Now please give me a keyword:
cat
17
BREAK
2
BREAK-------------
0
BREAK-------------
19
BREAK-------------
4
BREAK
2
BREAK-------------
0
BREAK-------------
19
BREAK-------------
3
BREAK
2
BREAK-------------
0
BREAK-------------
19
BREAK-------------
Run Code Online (Sandbox Code Playgroud)

你可以看到它输出了消息的第一个字母位置,然后是关键字的所有三个位置,然后进入消息的第二个位置字母,然后再次输出关键字的所有三个位置值.我如何解决这个问题以获得我想要的输出,我确信我没有正确地编写forloop.

And*_*ken 5

你得到的是嵌套for循环使它做你建议他们只需要一个接一个,而不是互相嵌套.当您将第二个for循环放在第一个循环内部时,您要告诉它要在消息中的每个字母的关键字中打印每个字母.

你想要的是这样的循环(如果一个字符串比另一个字符串长,我不清楚你想要它做什么,我假设你希望它用较短的字符串停止,但你可以改变它.)

if(strMessage.length > keyword.length){
    intLength = keyword.length;
} else {
    intLength = strMessage.length;
}

for (int i=0; i<intLength; i++){ 
    //Print the position of the i'th letter of the message
    int intPosition; 
    intPosition=strAlphabet.indexOf(strMessage.charAt(i));
    System.out.println(intPosition); 

    //Print the position of the i'th letter of the keyword
    int intPosition2; 
    intPosition2=strAlphabet.indexOf(strKeyword.charAt(i));
    System.out.println(intPosition2); 

}
Run Code Online (Sandbox Code Playgroud)