我有以下代码,回报令我困惑.我是java的新手,并不确定它为什么会以它的方式返回.任何帮助都会很棒.
当数据有PE846并且A846它返回时engine,ambo和engineambo.我只想回来engineambo.
String soundString = "";
if (data.contains("PE846")) {
soundString += "engine";
betaString = "Engine : ";
sign = engine;
}
if (data.contains("A846")) {
soundString += "ambo";
betaString += "Ambo : ";
sign = ambo;
}
if (data.contains("MD846")) {
soundString += "medic";
betaString += "Medic";
sign = medic;
}
log.info(betaString + " Alerted");
{
new AudioPlayer("sounds/" + soundString + ".wav").start();
log.info(soundString);
}
Run Code Online (Sandbox Code Playgroud)
您可以尝试逐行遍历代码.如果它包含PE846和A846(但不包含MD846),那么它将运行前两个条件块,从而执行如下:
if (data.contains("PE846")){ // The string does contain PE846, per your question
soundString += "engine"; // soundString = "" + "engine" = "engine"
betaString = "Engine : "; // betaString = "Engine : "
sign = engine; // sign = engine
}
if (data.contains("A846")){ // The string does contain A846, per your question
soundString += "ambo"; // soundString = "engine" + "ambo"
betaString += "Ambo : "; // betaString = "Engine : " + "Ambo : " = "Engine : Ambo : "
sign = ambo; // sign = ambo (overwriting the previous value, "engine")
}
if (data.contains("MD846")){ // The string does not contain MD846, per your question
soundString += "medic"; // not executed
betaString += "Medic"; // not executed
sign = medic; // not executed
}
log.info(betaString + " Alerted"); // betaString + " Alerted" => "Engine : Ambo : Alerted"
{
new AudioPlayer("sounds/"+ soundString +".wav").start();
log.info(soundString); // soundString => "engineambo"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
134 次 |
| 最近记录: |