调用在Java的另一个循环中创建的变量,以及如何在do ... while循环中具有多个条件

康纳·格林

我正在为学校的课堂创建一个石头剪刀布游戏。除了设置一些内容以回答无效的选择时,我可以进行所有工作。我认为do ... while语句在这里是最好的,但是我意识到我正在循环的“ do”部分中调用一个变量。因此,由于它正在从另一个循环中进行调用,因此无法找到该变量。另外,在我的while语句中,我是否正确列出了可接受的变量?我敢肯定,我只是弥补了这一部分。

非常感谢您的帮助!

import java.util.Scanner;

public class RockPaperScissorsTest {

    public static void main(String[] args) throws Exception {

        Scanner input = new Scanner(System. in );
        do {
            System.out.println("Player 1, choose 1 for rock, 2 for paper, or 3 for scissors.");
            int P1 = input.nextInt();
        } while (P != 1; P1 != 2; P1 != 3);
        System.out.println("");
        System.out.println("");
        System.out.println("");
        do {
            System.out.println("Player 2, choose 1 for rock, 2 for paper, or 3 for scissors.");
            int P2 = input.nextInt();
        } while (P2 != 1; P2 != 2; P2 != 3);
        if (P1 == 1 & P2 == 1)
            System.out.println("It's a tie!");
        if (P1 == 1 & P2 == 2)
            System.out.println("Player 2 wins!");
        if (P1 == 1 & P2 == 3)
            System.out.println("Player 1 wins!");
        if (P1 == 2 & P2 == 1)
            System.out.println("Player 1 wins!");
        if (P1 == 2 & P2 == 2)
            System.out.println("It's a tie!");
        if (P1 == 2 & P2 == 3)
            System.out.println("Player 2 wins!");
        if (P1 == 3 & P2 == 1)
            System.out.println("Player 2 wins!");
        if (P1 == 3 & P2 == 2)
            System.out.println("Player 1 wins");
        if (P1 == 3 & P2 == 3)
            System.out.println("It's a tie!");
    }
}
TJ人群

跳出了几件事:

  1. 在Java(以及从B语法上派生的大多数其他语言)中,逻辑AND运算符&&不是,&&是数学运算符,是按位布尔或)。

    所以

    if (P1 == 1 && P2 == 1)
    //          ^^---- &&, not &
    
  2. 在Java中,变量具有块作用域。这意味着在一个块内声明的变量仅在该块(及其包含的任何块)内可用,而该块不可用因此,P2您要在循环中定义以下内容:

    do {
        System.out.println("Player 2, choose 1 for rock, 2 for paper, or 3 for scissors.");
        int P2 = input.nextInt();
    //  ^----------------------------- here
    } while (/*...*/);
    

    ...将仅循环可用,而不是在循环后可用您需要在循环外声明该变量。P1当然,与相似)。在这种情况下,最佳位置是函数的顶部:

    int P1, P2;
    
  3. 在任何逻辑条件(包括的条件while)中,要组合多个条件,请使用逻辑运算符&&(“ and”)和||(“ or”),而不是分号(;)。因此,例如:

    do {
        System.out.println("Player 2, choose 1 for rock, 2 for paper, or 3 for scissors.");
        P2 = input.nextInt();
    } while (P2 != 1 && P2 != 2 && P2 != 3);
    //               ^^---------^^---- "If P2 is not 1 AND P2 is not 2 AND P2 is not 3"
    
  4. 你有三个不同的测试,看它是否是一个领带,只是一般你做了很多相同的条件下再测试(大量的P1 == 1P2 == 2等等)。您可以仅通过检查是否来测试平局P1 == P2,并且可以使用来显着减少条件检查的次数else,例如:

    if (P1 == P2) {
        System.out.println("It's a tie!");
    }
    else if (P1 == 1) {
        if (P2 == 2) {
            System.out.println("Player 2 wins!");
        }
        else {
            System.out.println("Player 1 wins!");
        }
    }
    else if (P1 == 2) {
        if (P2 == 1) {
            System.out.println("Player 1 wins!");
        }
        else {
            System.out.println("Player 2 wins!");
        }
    }
    else { // P1 == 3
        if (P2 == 1) {
            System.out.println("Player 2 wins!");
        }
        else {
            System.out.println("Player 1 wins");
        }
    }
    
  5. (更先进的)查找到enum秒。在我返工你的逻辑,我只是相信,你的逻辑是正确的,因为我不知道是什么12或者3是看代码的时候。(显然,在更高的位置,我可以查看您输出的消息。)使用enum可以使代码更清晰。if (P2 == RPS.Paper)

我建议您阅读一些Java指导教程。甲骨文有几个

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python - 如何在另一个具有范围的循环中运行循环?

来自分类Dev

C#如何在while循环中从另一个类调用void方法

来自分类Dev

While循环中的多个条件-IDL

来自分类Dev

如何从for(或while)循环中将变量发送到另一个活动

来自分类Dev

如何从for(或while)循环中将变量发送到另一个活动

来自分类Dev

我如何在 Python 的另一个 while 循环中正确地创建一个 while 循环?

来自分类Dev

for循环中有多个条件

来自分类Dev

for循环中有多个条件

来自分类Dev

如何在另一个while循环中使用if else语句

来自分类Dev

While循环中的条件

来自分类Dev

条件的顺序与while循环中的多个条件有关吗?

来自分类Dev

有多个条件的While循环

来自分类Dev

有多个条件的While循环

来自分类Dev

您可以将一个 for 循环嵌套在另一个具有相同循环变量的循环中吗?

来自分类Dev

如何在淘汰赛的for循环中获取另一个for循环

来自分类Dev

如何在R中的另一个循环中循环?

来自分类Dev

具有多个条目的变量在for循环中运行

来自分类Dev

如何在循环中创建一个数组,然后在Java中循环后可以调用它?

来自分类Dev

Java Gett变量是否在另一个类的循环中?

来自分类Dev

while循环中的多个条件无法正常工作

来自分类Dev

在 SQL 中的另一个循环中创建一个循环?

来自分类Dev

或条件在while循环中python

来自分类Dev

如何在另一个函数的for循环中使用函数到python中

来自分类Dev

如何将awk结果变量分配给数组,以及是否可以在循环中的另一个awk中使用awk

来自分类Dev

如何使用在FOR循环中调用的子集中设置的变量(具有延迟扩展)

来自分类Dev

如何使具有多个条件的while循环在真实条件下停止?

来自分类Dev

while 循环中的条件被破坏(现在有一个片段)

来自分类Dev

Javascript:在For循环中等待一个(或多个)条件

来自分类Dev

如何在foreach循环中创建具有多个xelement节点的顶级xelement

Related 相关文章

  1. 1

    Python - 如何在另一个具有范围的循环中运行循环?

  2. 2

    C#如何在while循环中从另一个类调用void方法

  3. 3

    While循环中的多个条件-IDL

  4. 4

    如何从for(或while)循环中将变量发送到另一个活动

  5. 5

    如何从for(或while)循环中将变量发送到另一个活动

  6. 6

    我如何在 Python 的另一个 while 循环中正确地创建一个 while 循环?

  7. 7

    for循环中有多个条件

  8. 8

    for循环中有多个条件

  9. 9

    如何在另一个while循环中使用if else语句

  10. 10

    While循环中的条件

  11. 11

    条件的顺序与while循环中的多个条件有关吗?

  12. 12

    有多个条件的While循环

  13. 13

    有多个条件的While循环

  14. 14

    您可以将一个 for 循环嵌套在另一个具有相同循环变量的循环中吗?

  15. 15

    如何在淘汰赛的for循环中获取另一个for循环

  16. 16

    如何在R中的另一个循环中循环?

  17. 17

    具有多个条目的变量在for循环中运行

  18. 18

    如何在循环中创建一个数组,然后在Java中循环后可以调用它?

  19. 19

    Java Gett变量是否在另一个类的循环中?

  20. 20

    while循环中的多个条件无法正常工作

  21. 21

    在 SQL 中的另一个循环中创建一个循环?

  22. 22

    或条件在while循环中python

  23. 23

    如何在另一个函数的for循环中使用函数到python中

  24. 24

    如何将awk结果变量分配给数组,以及是否可以在循环中的另一个awk中使用awk

  25. 25

    如何使用在FOR循环中调用的子集中设置的变量(具有延迟扩展)

  26. 26

    如何使具有多个条件的while循环在真实条件下停止?

  27. 27

    while 循环中的条件被破坏(现在有一个片段)

  28. 28

    Javascript:在For循环中等待一个(或多个)条件

  29. 29

    如何在foreach循环中创建具有多个xelement节点的顶级xelement

热门标签

归档