Exercício da Apostila de Java Básico da Caelum.
Imprima a seguinte tabela usando for encadeados:
1
2 4
3 6 9
4 8 12 16
n n2 n3 … n*n
Exercício da Apostila de Java Básico da Caelum.
Imprima a seguinte tabela usando for encadeados:
1
2 4
3 6 9
4 8 12 16
n n2 n3 … n*n
Poste o código que fez até agora, ou faça uma pergunta específica.
Prefiro ensinar a pescar a dar o peixe.
[quote=prof.claudia]Exercício da Apostila de Java Básico da Caelum.
Imprima a seguinte tabela usando for encadeados:
1
2 4
3 6 9
4 8 12 16
n n2 n3 … n*n
[/quote]
Consegui:
public static void main(String[] args) {
int n = 4; // número de linhas que queremos imprimir
for (int i = 1; i <= n; i++){
for (int j = 1; j <= i; j++){
System.out.print((i*j) + " "); // valor do elemento j na linha i
}
System.out.println(""); // muda de linha
}
}
Olá, bom dia… sou novo por aqui e estou começando a utilizar e aprender Java, sempre foi um grande desafio aprender a programar e estou muito interessado realmente… estou utilizando a apostila do caelum-java e me deparei com um exercício (desafio) acima indicado de lista com for encadeada, onde não entendi o código que foi postado, realmente ele faz o que o exercício pede, porém não entendi como ele… trabalha as linhas e colunas.
Podem indicar também algum livro bom para iniciantes?
Grato.
A melhor maneira de você entender um programa é fazer o que ele faz passo a passo, pode ser tanto debugando o programa numa IDE, ou pegar um lapis e uma caneta, e ir escrevendo cada passo que ele fez, qual o valor das variáveis agora, etc; é conhecido como teste de mesa.
O for externo serve para imprimir tudo que for dentro de uma linha.
O for interno serve para imprimir os números, separados por espaços, como se fossem colunas.
O for externo usa uma variável i que assume durante a vida dela, os valores de 1 até N, um a um.
O for interno usa uma variável j, que assume valores entre 1 e o i declarado acima, ou seja, dira de 1 até 1, 1 até 2, 1 até 3, etc, parando em 1 até N. Ou seja, este for executará N vezes, cada vez imprimindo mais números que a última vez.
Por fim, já fora do laço do for interno, ele imprime uma nova linha, e vai para a próxima iteração do for externo.
Olá, segue abaixo o meu código para a solução dessa questão.
public class forFor {
public static void main(String[] args) {
for (int a = 0; a < 5; a++) {
for (int b = 1; b <= a; b++) {
System.out.print(a * b );
}
System.out.println("");
}
}
}
public static void main(String[] args) {
int n = 4; // número de linhas que queremos imprimir
for (int i = 1; i <= n; i++){
for (int j = 1; j <= i; j++){
System.out.print((i*j) + " ");
}
System.out.println("");
}
}
Pessoal creio q nao peguei legal a mecânica do for, então pergunto:
Na primeira execução do for na linha 5 o “i” vale 1
Entra na linha 6 e o “for” sera executado apenas 1 vez pq ‘j’ = ‘i’ imprimindo 1 e muda de linha.
ok até ai certo no meu teste de mesa.
Mas dai volta pro for externo linha 5 onde o ‘i’ passa a valer 2
Entra no ‘for’ interno, ‘j’ é incrementado pra 2 e vai executar 1 vez apenas de novo pois ‘j’ = ‘i’ de novo, imprimindo apenas o numero 4
Aqui no meu teste o for interno da linha 6 vai imprimir apenas 1 numero em cada uma das 4 linhas.
Porque ‘i’ e ‘j’ sempre tem o mesmo valor sendo essa a condição pra uma única execução do ‘for’ interno da linha 6
Mas quando rodo o programa forma a tabela direitinho
public class Caleum {
public static void main(String[]args){
for(int i=1;i<4;i++){
System.out.println("");
for(int j=1;j<=i;j++){
System.out.print((i*j)+" ");
}
}
}
}
Não entendi a necessidade do da linha abaixo no seu código:
"int n = 4; // número de linhas que queremos imprimir "
eu fiz sem o n e rodou aqui!
class exercicio8{
public static void main(String[] args){
//for encadeado
for (int i = 1; i<5; i++){
for (int j = 1; j<=i; j++){
System.out.print(i*j + " ");
}
System.out.println(""); // muda de linha
}
}
}
Desenterrando o tópico, rs.
Estou com duvidas neste código e se alguém puder ajudar ficaria grato. Eu estou tentando entender como o código funcionou.
a variável “i”, inicia com 1, a variável “j”, também inicia em “1”.
Após a primeira iteração, “j” passa a valer 2, e “i” também passa a valer 2. Como esse laço consegue imprimir os seguintes valores:
1
2 4
3 6 9
4 8 12 16
O que eu não estou percebendo dentro do segundo for?
Desde já, grato à comunidade.
Ya ja entendi a logica que foi usada isso e que encomodava
Tá aí
public static void main(String[] args) {
int mult;
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= i; j++) {
mult= i*j;
System.out.print ((mult)+ " ");
}
System.out.println("");
}
}
}
public class Encadeamento{
public static void main(String[] args){
int A = 10;
for (int a = 1;a <= A;a++){
System.out.print(a + " ");
int c = a;
for (int b = 1;b < a;b++){
System.out.print((c+=a) + " ");
}
System.out.println();
}
}
}
public class ExercicioTabuada {
public static void main(String[] args) {
for (int i = 1; i < 1000; i++) {
for (int j = 1; j <= i; j++) {
int x = i * j;
System.out.print(x+" ");
if (j == i) {
System.out.println();
}
}
}
}
}
//Print table
public class Exercise08 {
public static void main(String[] args) {
int numberLines = 4;
for(int number = 1; number <= numberLines; number++) {
for(int index = 1; index <= number; index++) {
System.out.print(number * index);
}
//Skipe a line
System.out.println("");
}
}
}