/ / Java - para saída de loop - java, for-loop

Java - para saída de loop - java, for-loop

Eu estou escrevendo um código para uma atribuição que precisa ter essa saída:

A1  B2  C3  D4  E5  F6  G7  H8  I9  J10  K11  L12

Isso é o que escrevi usando loops aninhados para (a atribuição requer o uso de loops for):

public static void outputFive()
{
//Output 5
for(char alph = "A"; alph <= "L"; alph++)
{
for(int x = 1; x <= 12; x++)
{
System.out.print(alph + x + " ");
}

}
}

E a saída que recebo é de todos os números que não são nem o que eu quero O que eu recebo quando corro:

66 67 68 69 70 71 72 73 74 75 76 77 67 68 69 70 71 72 73 74 75 76 77 78 68 69 70 71 72 73 74 75 76 77 78 79 69 70 71 72 73 74 75 76 77 78 79 80 70 71 72 73 74 75 76 77 78 79 80 81 71 72 73 74 75 76 77 78 79 80 81 82 72 73 74 75 76 77 78 79 80 81 82 83 73 74 75 76 77 78 79 80 81 82 83 84 74 75 76 77 78 79 80 81 82 83 84 85 75 76 77 78 79 80 81 82 83 84 85 86 76 77 78 79 80 81 82 83 84 85 86 87 77 78 79 80 81 82 83 84 85 86 87 88

Respostas:

1 para resposta № 1

Você pode usar um contador como este:

public static void main(String[] args) {
int i = 1;
for (char alph = "A"; alph <= "L"; alph++) {
System.out.print(alph + "" + i + " ");
i++;
}
}

Isso vai te mostrar:

A1 B2 C3 D4 E5 F6 G7 H8 I9 J10 K11 L12

Porque se você tentar adicionar um char a um int assim:

System.out.println("A" + 1); na verdade isso significa que o 65 + 1 e não A1


1 para resposta № 2
public static void main(String[] args)
{
int i=1;
for(char alph = "A"; alph <= "L"; alph++,i++)
{
System.out.print(alph);
System.out.print(i+" ");
}
}

0 para resposta № 3

alph + x avalia a adição do código de caracteres ASCII para alph para x.

Por exemplo. O código ASCII para "A" é 65. É por isso que você obtém 66-77 para a primeira iteração do loop.


0 para a resposta № 4

Tente este;

for(int x = 1; x <= 12; x++)
{
System.out.print(alph + "" + x + " ");
}

Seu código mostra a soma de (int) alph + x.


0 para a resposta № 5

Você pode usar String.valueOf (alph)

System.out.print(String.valueOf(alph) + x + " ");

0 para a resposta № 6

Os fatos

  • você está usando 2 loops
for(char alph = "A"; alph <= "L"; alph++) //first loop A-L = 12x
for(int x = 1; x <= 12; x++) //second loop 1-12 = 12x

significa que você passa sua impressão 144 vezes (12x12)

  • você está imprimindo char

Os problemas

  • você quer imprimir 12 vezes não 144
  • char é considerado como um tipo numérico

Solução

  • remova o segundo loop e crie int x com valor inicial 1
  • usar String.valueOf(alph)
public static void outputFive()
{
//Output 5
int x = 1;
for(char alph = "A"; alph <= "L"; alph++)
{
System.out.print(String.valueOf(alph) + x + " ");
x++;
}
}

0 para resposta № 7

Você também pode usar o ASCII de caracteres

public static void main(String[] args) {

int i = 1;
for (int alph = 65; alph <= 76; alph++)
{
System.out.print((char)alph + "" + i + " ");
i++;
}
}

0 para a resposta № 8

Como todos os problemas, existe uma fase de análise de requisitos.

System.out.print("A1  B2  C3  D4  E5  F6  G7  H8  I9  J10  K11  L12");`

certamente satisfaz o funcional declaradorequisitos. Mas, também há um requisito não funcional para usar um loop porque há algum tipo de série nos dados. Existem vários padrões para ver nos dados. Na minha opinião, presumindo algum alfabeto e realizando aritmética em caracteres são práticas ruins. Então, eu tomo um alfabeto, como na matemática, como uma seqüência dada:

// For convenience, use a String (of char) instead of an array of whatever
final String alphabet = "ABCDEFGHIJKL"; // assumes one char per character

O problema torna-se então a saída dos elementos da seqüência junto com o índice baseado em 1 do elemento.

for (int i = 0; i < alphabet.length(); i++) {
System.out.print(String.format("%c%d ", alphabet.charAt(i), (i+1)));
}