从较短的字符串打印字符后,程序停止从两个字符串一次打印一个字符
Program stops printing one character at a time from two strings after the Characters are printed from the shorter string
我对这段代码有疑问。否则它完全按照标题所说的进行操作,但是如果给定的字符串是 "aa" 和 "bbbb",它只打印 "abab" 而不是打印 "ababbb"。从较短的字符串中打印出字符后,程序似乎停止了。这是代码:
public static void main(String[] args) {
Scanner lukija = new Scanner(System.in);
System.out.print("Anna merkkijono: ");
String merkkijono1 = lukija.nextLine();
System.out.println("Anna toinen merkkijono: ");
String merkkijono2 = lukija.nextLine();
for (int index = 0; index < merkkijono1.length() || index < merkkijono2.length(); index++) {
if (merkkijono1.length() > index) {
System.out.print(merkkijono1.charAt(index));
if (merkkijono2.length() > index) {
System.out.print(merkkijono2.charAt(index));
}
}
}
}
}
所以即使从较短的字符串打印字符,我也应该以某种方式让它继续,有什么提示吗?
另外由于某种原因,其中一个括号不适合代码文本,我无法在不转动整个的情况下包含 java.util.Scanner 和 public class代码文本乱七八糟,抱歉。
将第二个if-statement移出第一个。
for (int index = 0; index < merkkijono1.length() || index < merkkijono2.length(); index++) {
if (merkkijono1.length() > index) {
System.out.print(merkkijono1.charAt(index));
}
if (merkkijono2.length() > index) {
System.out.print(merkkijono2.charAt(index));
}
}
if 语句似乎在错误的循环中。
在这里,我测试了它并且它有效。
import java.util.Scanner;
public class Program1 {
public static void main(String[] args) {
Scanner lukija = new Scanner(System.in);
System.out.print("Anna merkkijono: ");
String merkkijono1 = lukija.nextLine();
System.out.print("Anna toinen merkkijono: ");
String merkkijono2 = lukija.nextLine();
for (int i = 0; i < merkkijono1.length() || i < merkkijono2.length(); i++) {
if (merkkijono1.length() > i) {
System.out.print(merkkijono1.charAt(i));
}
if (merkkijono2.length() > i) {
System.out.print(merkkijono2.charAt(i));
}
}
}
}
我对这段代码有疑问。否则它完全按照标题所说的进行操作,但是如果给定的字符串是 "aa" 和 "bbbb",它只打印 "abab" 而不是打印 "ababbb"。从较短的字符串中打印出字符后,程序似乎停止了。这是代码:
public static void main(String[] args) {
Scanner lukija = new Scanner(System.in);
System.out.print("Anna merkkijono: ");
String merkkijono1 = lukija.nextLine();
System.out.println("Anna toinen merkkijono: ");
String merkkijono2 = lukija.nextLine();
for (int index = 0; index < merkkijono1.length() || index < merkkijono2.length(); index++) {
if (merkkijono1.length() > index) {
System.out.print(merkkijono1.charAt(index));
if (merkkijono2.length() > index) {
System.out.print(merkkijono2.charAt(index));
}
}
}
}
}
所以即使从较短的字符串打印字符,我也应该以某种方式让它继续,有什么提示吗?
另外由于某种原因,其中一个括号不适合代码文本,我无法在不转动整个的情况下包含 java.util.Scanner 和 public class代码文本乱七八糟,抱歉。
将第二个if-statement移出第一个。
for (int index = 0; index < merkkijono1.length() || index < merkkijono2.length(); index++) {
if (merkkijono1.length() > index) {
System.out.print(merkkijono1.charAt(index));
}
if (merkkijono2.length() > index) {
System.out.print(merkkijono2.charAt(index));
}
}
if 语句似乎在错误的循环中。 在这里,我测试了它并且它有效。
import java.util.Scanner;
public class Program1 {
public static void main(String[] args) {
Scanner lukija = new Scanner(System.in);
System.out.print("Anna merkkijono: ");
String merkkijono1 = lukija.nextLine();
System.out.print("Anna toinen merkkijono: ");
String merkkijono2 = lukija.nextLine();
for (int i = 0; i < merkkijono1.length() || i < merkkijono2.length(); i++) {
if (merkkijono1.length() > i) {
System.out.print(merkkijono1.charAt(i));
}
if (merkkijono2.length() > i) {
System.out.print(merkkijono2.charAt(i));
}
}
}
}