/*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("*");
}
}
}
Algoritimo Java Retangulo
W
3 Respostas
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("*");
}
}
}
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