开发者社区 问答 正文

如果两个条件的陈述无法正常运作

我是编程新手,正在尝试创建一个程序来分析文件并输出令牌。目前,我正在尝试创建一个if语句,该语句将输出带有两个字符的每个运算符的名称,例如“ &&”或“ <=”。我的if语句不适用于“ <=”,因为由于前面的代码,它分别拾取了“ <”和“ =”:

else if (getOp(ch) != null) {
                System.out.println(line + ", " + sglchar + ", "+ ch);
                counter++;
                continue;
            }

我的getOp(ch)方法包含一个字符的运算符,但是我无法弄清楚如何使用两个字符运算符,而且if语句似乎并没有解决问题。

这是我正在尝试的if语句:

else if (prog.charAt(counter) == '<' && prog.charAt(counter+1) == '=') {
                    String str = "";
                    str += ch;
                    str += prog.charAt(counter++);
                    System.out.println(line + ", " + getOp(str) + ", " + str);
                    counter++;
                    continue;
                }

展开
收起
垚tutu 2019-12-12 09:51:58 658 分享 版权
阿里云 AI 助理回答

在您的程序中,如果您想通过if语句来分析文件并输出所有由两个字符组成的运算符名称,可以参考以下步骤和代码示例。这里我们以分析的字符串可能包含各种运算符为例,使用Java语言进行说明,因为参考资料中提供了Cava编程语言的运算符概述,但实际操作中我们可以借鉴其逻辑来处理其他语言环境。

分析与实现

  1. 任务描述

    • 需要编写一个程序段,遍历文件中的内容(假设已读入为字符串inputString),识别出所有由两个字符组成的运算符,并输出它们的名称。
  2. 步骤说明

    • 步骤1: 初始化一个字符串或字符数组,包含您想要识别的所有双字符运算符。
    • 步骤2: 遍历输入字符串,检查每个连续的两个字符是否与预定义的双字符运算符匹配。
    • 步骤3: 如果找到匹配项,使用if语句判断并输出该运算符的名称。
// 假设已读取的文件内容存储在inputString中
String inputString = "您的文件内容字符串";
String[] doubleOperators = {"++", "--"}; // 定义双字符运算符数组

// 遍历字符串,检查双字符运算符
for (int i = 0; i < inputString.length() - 1; i++) {
    String currentPair = inputString.substring(i, i + 2);
    if (Arrays.asList(doubleOperators).contains(currentPair)) {
        // 输出匹配的运算符名称
        System.out.println("找到运算符: " + currentPair);
        // 根据具体运算符添加更多逻辑,例如输出详细名称
        if (currentPair.equals("++")) {
            System.out.println("这是自增运算符");
        } else if (currentPair.equals("--")) {
            System.out.println("这是自减运算符");
        }
    }
}

注意事项

  • 确保您的文件读取逻辑正确无误,且inputString变量已正确初始化。
  • 上述示例仅包括了++--两个常见的双字符运算符,根据需要您可以扩展doubleOperators数组来包含更多双字符运算符。
  • 实际应用中,还需考虑更复杂的边界情况和性能优化,比如大文件的处理策略。

通过上述方法,您可以识别并输出文件中所有由两个字符组成的运算符。如果您的目标语言不是Java,请相应地调整语法。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: