Diversão com Java - Draw A Diamond
Recentemente, encontrei uma solicitação interessante de um estudante de Java em um dos fóruns que li. Foi pedido à sua classe que usasse um loop for para tirar um diamante de asteriscos (*). Ele tinha uma solução correta e funcional, mas fora marcado porque era muito complicado e apresentava vários loops. O aluno pediu sugestões sobre maneiras mais fáceis de alcançar o mesmo resultado. Eu pensei que este era um problema interessante e decidi tentar. Meu programa está abaixo (ou você pode baixar uma cópia aqui.) Isso claramente não é um código de produção - por um lado, enquanto eu amo a simplicidade do operador?:, Tento não usá-lo no código de produção porque muitos programadores acham que fica mais difícil ler e entender. Sem mencionar, esse código será quebrado se largura máxima é alterado para um número maior que 46. Mas é um exemplo de um método bastante compacto e lógico para alcançar o resultado desejado. Você pode fazer melhor? Informe novamente em nosso fórum.

/*
 * diamonds.java
 *
 * Criado em 4 de junho de 2007 às 23h39.
 */

/**
 *
 * @autor Julie Baumler
 */
diamantes de classe pública {

/ ** Cria uma nova instância de diamantes * /
diamantes públicos () {
}

/**
* @param args os argumentos da linha de comando
*/
public static void main (String [] args) {
int max_width = 9; // # de caracteres largos para fazer diamante
int width = max_width% 2 == 0? max_width / 2: max_width / 2 +1;
Estrelas da string = "************************************************ ";
Espaços de cadeia = "";
for (int i = 1; i <(largura * 2); i ++) {
System.out.print (spaces.substring (0, (i System.out.println (stars.substring (0,2 * (i <= largura? I: largura- (i% largura)) - 1));
}

}

}

O pedido original:
Pinimo. "Ajude-me com java (sic)." Postagem online. Semana de 13 de maio de 2007. Java Discussion (Forum). 4 de junho de 2007.

Instruções De Vídeo: Animation vs. Minecraft (original) (Pode 2024).