Estou tentando criar um programa que imprima todas as 52 cartas do baralho, do 1 até o 10 e com todos os naipes (Paus, Ouros, Copas, Espadas) e também imprimir as cartas Valete, Dama e rei.
Achei o uso do “for” mais apropriado nesse caso, porém não tenho muito conhecimento com funções de repetições, gostaria de saber como imprimir uma “String” utilizando o “for”?
Estou utilizando essa lógica mas ela não é muito prática, pois está imprimindo só até o número 4, poderiam me ajudar a imprimir o restante dos números? E adicionar o “valete, dama e rei” ?
public class Baralho {
public static void main(String[] args) {
int numeroCartas[] = {1,2,3,4,5,6,7,8,9,10};
String naipesCartas[] = {"Copas","Ouros","Espadas","Paus"};
int i;
for(i=0; i<4; i++) {
System.out.printf("%d de %s.\n", numeroCartas[i], naipesCartas[i] );
}
}
}
Então, ele tá imprimindo até o 4 por que você fez ele imprimir até o quatro na condição do For. O for funciona assim:
para ( variavel =0; enquanto a variavel não atingir essa condição; ação)
Ou seja:
para (i começando em 0; enquanto i for menor que 4; i acresce um)
Seu laço tá imprimindo da seguinte forma:
1 de Copas.
2 de Ouros.
3 de Espadas.
4 de Paus.
Isso por que ele tá executando, nesse for, isso aqui:
numeroCartas[0] e naipesCartas[0]
numeroCartas[1] e naipesCartas[1]
numeroCartas[2] e naipesCartas[2]
numeroCartas[3] e naipesCartas[3]
O que você precisa executar é
numeroCartas[0] e naipesCartas[0]
numeroCartas[0] e naipesCartas[1]
numeroCartas[0] e naipesCartas[2]
numeroCartas[0] e naipesCartas[3]
numeroCartas[1] e naipesCartas[0]
numeroCartas[1] e naipesCartas[1]
numeroCartas[1] e naipesCartas[2]
numeroCartas[1] e naipesCartas[3] [...]
Conseguiu visualizar melhor?
Dica: Você vai precisar de um for dentro do outro!
Ah, não esquece que os vetores no Java são zero-based, ou seja, eles não começam na posição 1!
Como diria o Tank: Neo, this is loco.
(Matrix - 1996)
Então, se você pegar um professor que não parou no tempo, provavelmente ele vai ensinar esse recurso do Java que já existe há 14 anos.
Quando fiz Ciência da Computação, tive uma disciplina chamada “Linguagens para Programação de Sistemas”, onde aprendíamos algumas características e recursos de diferentes linguagens.
Frequentemente o professor lançava uns desafios, como por exemplo, implementar um algoritmo utilizando tipos genéricos de dados, aí o aluno que decidia a linguagem em que iria fazer. Lembro de ter feito em Java e em C++ para ilustrar as diferenças na sintaxe.
Fora isso, nas disciplinas de “Introdução à Programação” e “algoritmos”, nunca fora utilizado um foreach ou um tipo genérico.