【发布时间】:2019-11-17 09:46:18
【问题描述】:
我正在编写代码以根据用户输入 (a & b) 创建一个新单词 (c),因此我需要一个代码来检查一个字符串是否等于另一个,但它显示该字符串仅等于 a另一个字符串的一部分。
import java.util.Scanner;
public class GabungKata_1402019129 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("----------------------------------");
System.out.println(" Program Gabung Kata");
System.out.println(" Dibuat oleh 1402019129");
System.out.println("----------------------------------");
System.out.print("Masukkan kata pertama: "); // Enter First word
String first = sc.nextLine(); // Bbxx
System.out.print("Masukkan kata kedua : "); // Enter Second word
String second = sc.nextLine(); // oxxx
String result = ""; // new String that is a combination from first and
// second
String[] names = {"Bob", "Zidan", "Fawzan", "Arkan", "Raihan"};
boolean data = true;
int n = 0;
do {
for (String check: names) {
if (result.equals(check)) {
data = false;
}else
data = true;
}
result += first.charAt(n);
result += second.charAt(n);
n++;
} while(data & n < first.length() & n < second.length());
System.out.println("New Word: " + result);
System.out.println("Is the new word is one of the names? " + !data);
}
}
新词将显示:“Bobxxxxx”,但我认为它应该在结果等于“Bob”时停止。我需要的是当结果等于其中一个名称时停止循环的代码块。我英语不好,希望大家能理解。
【问题讨论】:
-
请显示完整的代码我统计了至少四个未知变量。
-
data- 这是一个标志的坏名字 - 总是被设置为false,因为你的result不等于Lulu,它总是在列表中继续到Lulu。因此,只要您在result中有一对,data就会为假并且循环结束。但是你显示!data而不是data,所以你认为它找到了平等。这里的整个逻辑是错误的。请重新考虑您的算法。 -
好的,我会上传并更改一些代码,我没有,因为它是在印度尼西亚编写的。
-
当'result'等于'names'数组之一时,我需要“一些东西”来停止循环。