当前位置: 首页 > 知识库问答 >
问题:

If-else语句在第二次调用时跳过

尚景焕
2023-03-14

这是调用方法x次的时循环。

while (count<=rounds){
    System.out.println("Round " + round);
    PlayerVsPlayer.results();
    count++;
    round++;            
}

PlayerVsPlayer。results()请求用户输入并调用另一条语句。

        Scanner scan = new Scanner(System.in);
        System.out.print("Choose (R)ock, (P)aper, or (S)cissors:");
        String Player1 = scan.nextLine();
        System.out.print("Choose (R)ock, (P)aper, or (S)cissors:");
        String Player2= scan.nextLine();
        String[] Results = compare.winScore(Player1, Player2);

这是compare.win分数(Player1,Player2)中的如果其他语句的片段:

static String[] winScore(String x, String y){

    if (x.equals(y)) {
        winnerScoreRule.add("Round results is a tie, no one wins.");
        winnerScoreRule.add("");
        winnerScoreRule.add("");
    }
    else if ((x.equals("Rock")) && (y.equals("Paper"))){
        score2++; count++;
        winnerScoreRule.add("Player 2 wins this round!");
        winnerScoreRule.add("The score is " + score1 +" to "+ score2);
        winnerScoreRule.add("Paper beats rock!"); // etc.
    }

我遇到的问题是,如果其他语句第一次执行时,它工作得很好。第二次,如果其他语句跳过并返回第一次调用的值。有人知道为什么会这样吗?谢谢你的帮助!

共有1个答案

万俟靖
2023-03-14

我重写了这个winScore方法来检查“其他”案例。

static String[] winScore(String x, String y){

        if (x.equals(y)) {
            winnerScoreRule.add("Round results is a tie, no one wins.");
            winnerScoreRule.add("");
            winnerScoreRule.add("");
        }
    //you're asking them to enter (R), (P) or (S)
        else if ((x.toLowerCase().equals("r")) && (y.toLowerCase().equals("p"))){
            score2++; count++;
            winnerScoreRule.add("Player 2 wins this round!");
            winnerScoreRule.add("The score is " + score1 +" to "+ score2);
            winnerScoreRule.add("Paper beats rock!"); // etc.
        }
       ....//other logic for Rock Paper Scissors
        else
       {
           throw WrongOptionSelectedException(); //custom exception for wrong entry
        }
 类似资料:
  • Swift 条件语句 一个 if 语句 后可跟一个可选的 else if...else 语句,else if...else 语句 在测试多个条件语句时是非常有用的。 当你使用 if , else if , else 语句时需要注意以下几点: if 语句后可以有 0 个或 1 个 else,但是如果 有 else if 语句,else 语句需要在 else if 语句之后。 if 语句后可以有 0

  • else语句可以与if语句结合使用。 else语句包含else语句中的条件表达式解析为0或FALSE值时执行的代码块。 else语句是一个可选语句, else后面最多只能有一个else语句。 语法 (Syntax) if...else语句的语法是 - if expression: statement(s) else: statement(s) 流程图 (Flow Diagram) 例

  • 主要内容:if 语句,实例,if...else 语句,实例,if...else if...else 语句,实例,if...else 嵌套语句,实例Scala IF...ELSE 语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。 可以通过下图来简单了解条件语句的执行过程: if 语句 if 语句有布尔表达式及之后的语句块组成。 语法 if 语句的语法格式如下: 如果布尔表达式为 true 则执行大括号内的语句块,否则跳过大括号内的语句块,执行大括号之后的语句块。 实

  • 主要内容:if 结构,if-else 结构,多条件 if-else-if 语句,嵌套 if 的使用Java 支持两种选择语句:if 语句和 switch 语句。其中 if 语句使用布尔表达式或布尔值作为分支条件来进行分支控制,而 switch 语句则用于对多个整型值进行匹配,从而实现分支控制。这些语句允许你只有在程序运行时才能知道其状态的情况下,控制程序的执行过程。如果你没有 C/ C++ 的编程背景,你将会为这两个语句的强大功能和灵活性而感到吃惊。 选择结构(也叫分支结构)解决了顺序结构不能

  • Scala IF...ELSE 语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。 可以通过下图来简单了解条件语句的执行过程: if 语句 if 语句有布尔表达式及之后的语句块组成。 语法 if 语句的语法格式如下: if(布尔表达式) { // 如果布尔表达式为 true 则执行该语句块 } 如果布尔表达式为 true 则执行大括号内的语句块,否则跳过大括号

  • Swift 条件语句 一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为 false 时执行。 语法 Swift 语言中 if...else 语句的语法: if boolean_expression { /* 如果布尔表达式为真将执行的语句 */ } else { /* 如果布尔表达式为假将执行的语句 */ } 如果布尔表达式为 true,则执行 if