Java 如何在某些数组索引上放置条件
所以我正在做一个学校作业,我需要用java做一个随机卡片生成器,我需要洗一副牌,画一张5的牌,我已经做了,现在我需要打印我手中的牌,这些牌的值高于9,我已经在这一部分挣扎了好几天,所以如果有人能帮我的话,这会很神奇 这是我的密码:Java 如何在某些数组索引上放置条件,java,Java,所以我正在做一个学校作业,我需要用java做一个随机卡片生成器,我需要洗一副牌,画一张5的牌,我已经做了,现在我需要打印我手中的牌,这些牌的值高于9,我已经在这一部分挣扎了好几天,所以如果有人能帮我的话,这会很神奇 这是我的密码: package arrays.assignment.pkg1; import java.util.Arrays; import java.util.Random; import javax.swing.JOptionPane; public class Arrays
package arrays.assignment.pkg1;
import java.util.Arrays;
import java.util.Random;
import javax.swing.JOptionPane;
public class ArraysAssignment1 {
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"};
// Initialize cards
for (int i = 0; i < deck.length; i++) {
deck[i] = i;
}
// Display the all the cards
for (int i = 0; i < 52; i++) {
String suit = suits[deck[i] / 13];
String rank = ranks[deck[i] % 13];
System.out.println( rank + " of " + suit);
}
// Shuffle the cards
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;
}
System.out.println("your deck consists of\n");
System.out.println("\n\nin your hand, you have\n");
// Display 5 cards
for (int i = 0; i <5;i++) {
String suit = suits[deck[i] / 13];
String rank = ranks[deck[i] %13];
System.out.println( rank + " of " + suit);
}
//Display the cards that are greater than 9
System.out.println("\nThe cards in your hand that are greater than 9 are\n");
for (int i = 0; i <5;i++) {
if(deck[i] > 9) {
System.out.println(rank + " of " + suit);
}
}
}
package arrays.assignment.pkg1;
导入java.util.array;
导入java.util.Random;
导入javax.swing.JOptionPane;
公共类阵列分配1{
公共静态void main(字符串[]args){
int[]甲板=新int[52];
字符串[]套装={“黑桃”、“红桃”、“钻石”、“梅花”};
字符串[]排名={“Ace”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”,
“杰克”、“女王”、“国王”};
//初始化卡
对于(int i=0;i 对于(inti=0;i首先,我想指出,如果您创建一个Card
类,那么您的代码会简单得多
private Class card{
private int Value;
private String Suit;
public card (String suit, int value) {
Suit = suit;
Value = value;
}
public int getValue(){
return Value;
}
public String getSuit(){
return Suit;
}
}
然后,您可以将所有这些卡存储在Card[5]Hand
或Card[52]Deck
重复你的手并说
if(Hand[i].getValue > 9){
//do whatever you want to do here
}
改变
for (int i = 0; i <5;i++) {
if(deck[i] > 9) {
System.out.println(rank + " of " + suit);
}
}
for(int i=0;i 9){
系统输出打印项次(等级+“+诉讼”;
}
}
致:
for(int i=0;i 9){
系统输出打印项次(等级+“+诉讼”;
}
}
我试过了,它给出了一组完全不同的值,我希望它从我的手上打印出来。这是错误的答案,因为deck[i]%13
不代表等级,即卡片值。请联系你的老师。你根本不了解一个关键概念。
for (int i = 0; i <5;i++) {
String suit = suits[deck[i] / 13];
String rank = ranks[deck[i] %13];
if(deck[i] %13 > 9) {
System.out.println(rank + " of " + suit);
}
}