如果Else Statement,则输出两倍

 乐乐禧程整_435 发布于 2023-01-19 19:36

在我的IRC机器人中,只要有人输入!highfivetest,机器人会发出两次消息.我的if-else有问题吗?

Arry String;

public String[] moderatoren = {"furby1987","furbybot"}; // Moderatoren

CmdOutput;

        if (message.equalsIgnoreCase("!highfivetest")){
            for(int i2 = 0; i2 < moderatoren.length; i2++){  
                if (sender.equals(moderatoren[i2])){
                    sendMessage (channel, "!highfive");
                }else{              
                    sendMessage(channel, "Nur eingetragene Moderatoren haben Zugriff auf diesen Befehl. Sry <3"); 
                }
            }
        }

通常,我只是这样打字;

            if (message.equalsIgnoreCase("!highfivetest")){
                for(int i2 = 0; i2 < moderatoren.length; i2++){  
                    if (sender.equals(moderatoren[i2])){
                        sendMessage (channel, "!highfive");
                    break;
                    }else{              
                        sendMessage(channel, "Nur eingetragene Moderatoren haben Zugriff auf diesen Befehl. Sry <3"); 
                    break;
                    }
                }
            }

但真的需要休息吗?刚才有点恼火:-)

问候!

1 个回答
  • 错误消息应该在循环发送for.否则,将为每个未发送!highfivetest消息的主持人打印.要简化代码,您可以将主持人数组更改为a List,然后使用该List.contains方法.

    例1:

    boolean vonModeratorGesendet = false;
    for (int i2 = 0; i2 < moderatoren.length; i2++) {
        if (sender.equals(moderatoren[i2])) {
            vonModeratorGesendet = true;
            // you could also send "!highfive" from here
            break;
        }
    }
    if (vonModeratorGesendet) {
        sendMessage (channel, "!highfive");
    } else {
        sendMessage(channel, "Nur eingetragene Moderatoren haben Zugriff auf diesen Befehl. Sry <3");
    }
    

    例2:

    List<String> moderatorenListe = Arrays.asList(moderatoren);
    if (moderatorenListe.contains(sender)) {
        sendMessage (channel, "!highfive");
    } else {
        sendMessage(channel, "Nur eingetragene Moderatoren haben Zugriff auf diesen Befehl. Sry <3");
    }
    

    示例2是更好的选择.而不是将数组转换为a List,你也可以一直使用a List(这就是我要做的).

    2023-01-19 19:38 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有