Java 有没有办法访问for循环中的字符串变量?

Java 有没有办法访问for循环中的字符串变量?,java,Java,我需要访问两个字符串变量suit和rank, 然后在循环之外使用它们。这有可能吗 public class Deck { public static void main(String[] args) { int deck[] = new int[52]; String suits[] = {"Spades", "Hearts", "Diamonds", "Clubs"}; String ranks[] = {"Ace", "2"

我需要访问两个
字符串变量
suit
rank
, 然后在循环之外使用它们。这有可能吗

public class Deck {    

    public static void main(String[] args) {

        int deck[] = new int[52];
        String suits[] = {"Spades", "Hearts", "Diamonds", "Clubs"};
        String ranks[] = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"};

        for(int i = 0; i < deck.length; i++) deck[i] = i;

        for(int i = 0; i < deck.length; i++) {
            int index = (int)(Math.random() * deck.length);
            int temp = deck[i];
            deck[i] = deck[index];
            deck[index] = temp;
        }
        // randomizes the deck
        for(int i = 1; i < deck.length; i++) {
            String suit = suits[deck[i] / 13];  // I want to access these two Strings
            String rank = ranks[deck[i] % 13];  // here
            System.out.println(rank + "\t" + suit);

        }
        // and use them here
        // I'm trying to make a poker game but need to use those two to deal a hand
    }
}
公共类组{
公共静态void main(字符串[]args){
内部甲板[]=新内部甲板[52];
弦乐套装[]={“黑桃”、“红桃”、“钻石”、“梅花”};
字符串排名[]={“A”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“杰克”、“女王”、“国王”};
对于(inti=0;i
定义foor循环外部的变量,如下所示:

String suit;
String rank;
for(int i = 1; i < deck.length; i++) {
    suit = suits[deck[i] / 13];  // I want to access these two Strings
    rank = ranks[deck[i] % 13];  // here
    System.out.println(rank + "\t" + suit);

    }
    // and use them here

    // I'm trying to make a poker game but need to use those two to deal a hand
}
String套装;
串级;
对于(int i=1;i
定义foor循环外部的变量,如下所示:

String suit;
String rank;
for(int i = 1; i < deck.length; i++) {
    suit = suits[deck[i] / 13];  // I want to access these two Strings
    rank = ranks[deck[i] % 13];  // here
    System.out.println(rank + "\t" + suit);

    }
    // and use them here

    // I'm trying to make a poker game but need to use those two to deal a hand
}
String套装;
串级;
对于(int i=1;i
如果你想发一手牌,那么在我看来你需要一张牌——毕竟,一个玩家持有多张牌

我认为您需要后退一步,而不是继续使用当前代码。我会这样做:

  • 为套装定义一个枚举
  • 为列组定义一个枚举
  • 创建一张有套装和等级的
  • 创建一个
    牌组
    类来存储“牌组中剩余的牌”,从每张牌中的一张(或多张)开始
  • 创建一个
    玩家
    类,该类拥有一组牌作为手牌
  • 创建一个
    PokerGame
    类(或类似的类)作为入口点-该类中有
    main
    。(在我看来,把它放在
    Deck
    中没有多大意义。)
  • 从牌组到玩家,你想要多少张牌都行

如果你想发一手牌,那么在我看来你需要一张牌——毕竟,一个玩家持有多张牌

我认为您需要后退一步,而不是继续使用当前代码。我会这样做:

  • 为套装定义一个枚举
  • 为列组定义一个枚举
  • 创建一张有套装和等级的
  • 创建一个
    牌组
    类来存储“牌组中剩余的牌”,从每张牌中的一张(或多张)开始
  • 创建一个
    玩家
    类,该类拥有一组牌作为手牌
  • 创建一个
    PokerGame
    类(或类似的类)作为入口点-该类中有
    main
    。(在我看来,把它放在
    Deck
    中没有多大意义。)
  • 从牌组到玩家,你想要多少张牌都行

这样做的目的是什么?那么
suit
rank
将只保留最后一个值。这是为了什么?然后,
suit
rank
将只保留最后一个值。是的。对不起,如果这是个愚蠢的问题。这周我只是想自学。谢谢你的帮助。@user3136315:这个问题真的没那么蠢——但值得吸取教训的是,一旦事情开始变得有点奇怪,就值得后退一步,并检查你试图实现的目标是否有意义。我经常花很长时间来赢得一场与代码的小战役,结果却发现,由于一开始就设计得很糟糕,我输掉了这场战争!我已经试着解决这个问题两个小时了。此外,我还不太清楚枚举是什么。这是另一种变量类型吗?是的。对不起,如果这是个愚蠢的问题。这周我只是想自学。谢谢你的帮助。@user3136315:这个问题真的没那么蠢——但值得吸取教训的是,一旦事情开始变得有点奇怪,就值得后退一步,并检查你试图实现的目标是否有意义。我经常花很长时间来赢得一场与代码的小战役,结果却发现,由于一开始就设计得很糟糕,我输掉了这场战争!我已经试着解决这个问题两个小时了。此外,我还不太清楚枚举是什么。这是另一种变量类型吗?