输出差异-Java

阿洛伊修斯(Aloysius)

我的代码中没有出现错误消息。但是,当我在主体中键入代码以及调用方法时,我得到的输出将有所不同。

package card;

import java.util.Arrays;
import java.util.Random;

/**
 *

 */
public class Card {

    /**
     * @param args the command line arguments
     */
    static String rank;
    static String suit;
    static String[] ranks = {"2","3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};
    static String[] suits = {"Spades","Hearts", "Clubs", "Diamonds"};
    static Card[] deck = new Card[52];

   public Card(String rank, String suit)
   {
      this.rank = rank;
      this.suit = suit;
   }

   public static String getRank()
   {
       return rank;
   }

   public static void setRank(String r)
   {
       rank = r;
   }

    public static String getSuit()
   {
       return suit;
   }

   public static void setSuit(String s)
   {
       suit = s;
   }





    public static void init(Card[] deck)
    {
        for(int x = 0; x<deck.length; x++)
        {
            Card newCard = new Card(ranks[x%13], suits[x/13]);
            deck[x] = newCard;
        }
    }

    public static void swap(Card[] deck, int a, int b)
    {
        Card temp = deck[a];
        deck[a] = deck[b];
        deck[b] = temp;
    }

    public static void shuffle(Card[] deck)
    {
        Random rnd = new Random();
        for(int x = 0; x<deck.length; x++)
        {
            swap(deck, x, (rnd.nextInt(deck.length)));
        }
    }

    public static void print(Card[] deck)
    {   
        for(int x =0; x<deck.length; x++)
        {
              System.out.println(deck[x].getRank() + " of " + deck[x].getSuit());
        }

    }


    public static void main(String[] args) {
        // TODO code application logic here


    for(int x = 0; x<deck.length; x++)
    {
        Card cards = new Card(ranks[x%13], suits[x/13]);
        deck[x] = cards;
        System.out.println(deck[x].getRank() + " of " + deck[x].getSuit());

        //init(deck);
        //print(deck);
    }


  }

}

为了在没有任何方法的情况下手动执行我的代码,我将获得正确的输出:

例如

10 of Diamonds
J of Diamonds
Q of Diamonds
K of Diamonds

但是当我调用方法时,我得到以下输出:

A of Diamonds
A of Diamonds
A of Diamonds
A of Diamonds
A of Diamonds

怎么了?

他们是

您的以下静态成员

static String rank;
static String suit;

不应是静态的,因为每张卡应具有不同的值:

String rank;
String suit;

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java,PHP中的AES 128加密-输出差异

来自分类Dev

程序输出差异

来自分类Dev

parseDateTime输出差异

来自分类Dev

代码输出差异

来自分类Dev

ipython和python之间的输出差异

来自分类Dev

地图与每个地图的输出差异

来自分类Dev

为什么这种输出差异?

来自分类Dev

hexdump和hexedit的输出差异

来自分类Dev

ipython和python之间的输出差异

来自分类Dev

Linux和Windows上的输出差异

来自分类Dev

响应式网站的输出差异

来自分类Dev

C - Switch 语句 - 输出差异

来自分类Dev

比较2个xml文件的数据并输出差异

来自分类Dev

CMS 6.5和7.0之间的Sitecore FieldRenderer输出差异

来自分类Dev

GCC和MinGW(C ++)之间奇怪的输出差异

来自分类Dev

运行脚本时Ruby版本之间的输出差异

来自分类Dev

比较不同大小和数据的列表以输出差异

来自分类Dev

CMS 6.5和7.0之间的Sitecore FieldRenderer输出差异

来自分类Dev

Python-比较2个文件和输出差异

来自分类Dev

比较不同大小和数据的列表以输出差异

来自分类Dev

在 sas compare 中,只输出差异和新记录

来自分类Dev

C中while循环和for循环之间的差异导致输出差异

来自分类Dev

Knitr pdflatex控制台和PDF之间的输出差异

来自分类Dev

使用synced关键字和join()产生的输出差异

来自分类Dev

KnitR:控制台和PDF(编码)之间的输出差异

来自分类Dev

jq比较两个文件并以文本格式输出差异

来自分类Dev

如何在PHP中相互比较两个数组的值并输出差异

来自分类Dev

python中的numpy.sum()和matlab中的sum()之间的输出差异

来自分类Dev

C:使用完全相同的输入时,printf和vfprintf之间的输出差异