Algoritimo Java Retangulo

3 respostas
W
/*Tem como me ajudar com esse algoritimo, há outra forma melhor de fazer?

(Quadrado de asteriscos) Escreva um Aplicativo que solicita para o úsuario inserir o tamanho do lado de um quadrado, e então,
exibe um quadrado vazio desse tamanho com asteriscos .Seu programa deve trabalhar com quadrados de todos os comprimentos de aldos possíveis entre 1 a 20*/

import java.util.Scanner;

public class Exerc_4_29 {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.print(" Digite o numero do tamanho do quadrado de 1 a 20 :");
        int q = input.nextInt();

        for (int a = 1; a <= q; a++) {
            System.out.print("*");
        }

        for (int a = 1; a <= q - 2; a++) {
            System.out.print("\n*");

            switch (q) {

                case 3:
                    System.out.print(" ");
                    break;
                case 4:
                    System.out.print("  ");
                    break;
                case 5:
                    System.out.print("   ");
                    break;
                case 6:
                    System.out.print("    ");
                    break;
                case 7:
                    System.out.print("     ");
                    break;
                case 8:
                    System.out.print("      ");
                    break;
                case 9:
                    System.out.print("       ");
                    break;
                case 10:
                    System.out.print("        ");
                    break;
                case 11:
                    System.out.print("         ");
                    break;
                case 12:
                    System.out.print("          ");
                    break;
                case 13:
                    System.out.print("           ");
                    break;
                case 14:
                    System.out.print("            ");
                    break;
                case 15:
                    System.out.print("             ");
                    break;
                case 16:
                    System.out.print("              ");
                    break;
                case 17:
                    System.out.print("               ");
                    break;
                case 18:
                    System.out.print("                ");
                    break;
                case 19:
                    System.out.print("                 ");
                    break;
                case 20:
                    System.out.print("                  ");
                    break;
            }

            System.out.print("*\n");
        }

        for (int a = 1; a <= q; a++) {
            System.out.print("*");
        }

    }

}

3 Respostas

pmlm

O teu switch pode ser substituído por mais um for…

W

Valeu pela dica

/**
 * Quadrados de asteriscos
 */
import java.util.Scanner;

public class Exerc_4_29 {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.print(" Digite o numero do tamanho do quadrado de 1 a 20 :");
        int q = input.nextInt();

        for (int a = 1; a <= q; a++) {
            System.out.print("*");
        }

        for (int a = 1; a <= q - 2; a++) {
            System.out.print("\n*");

            for( int c = 1; c < q - 1; c++ )
            {
             System.out.print(" ");
            
            }

            System.out.print("*\n");
        }

        for (int a = 1; a <= q; a++) {
            System.out.print("*");
        }

    }

}
explosive_spirit

Um recurso interessante é fazer um “pad” na string que você vai imprimir, assim reduz a quantidade de laços for (usando pad seu algoritmo precisa mesmo de um só).

Segue um tópico interessante a respeito, está em inglês mas os exemplos de código são claros:

How can I pad a String in Java?

Espero ter ajudado.

Criado 29 de dezembro de 2013
Ultima resposta 4 de jan. de 2014
Respostas 3
Participantes 3