Faire une base de table de multiplication en java à l'aide de la boucle
Salut, je suis un débutant donc merci de ne pas utiliser n'importe quel des choses compliquées.
Voici un SS de ce que je veux dire. http://prntscr.com/1ffec0
à compter de maintenant, ne vous inquiétez pas d'avoir un nombre verticalement et horizontalement que d'afficher les colonnes et le numéro de ligne, il est.
J'ai mon code, mais je suis totalement confus sur la façon de faire et comment les faire se multiplier.
import java.util.Scanner;
public class test
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner (System.in);
int x=0, y=0;
System.out.print("Enter rows ");
x = keyboard.nextInt();
System.out.print("Enter columns ");
y = keyboard.nextInt();
for (int i=1; i<=x; i++)
{
for (int j=1; j<=y; j++)
{
System.out.print(" "+i+j);
}
System.out.println();
}
}
}
- Entendez-vous comme
i * j
? - Oh, grand exemple! Vous avez peut-être remarqué qu'il semble imprimer "étrange" des valeurs pour les valeurs. C'est parce que vous concat
i
à la Chaîne, alors concatj
à la Chaîne. Donc, pour vous exemple, sii
est 1 etj
est de 2, vous obtenez ` 12`.
Vous devez vous connecter pour publier un commentaire.
Je ne vais pas vous donner la réponse directement, mais je vais vous aider à mieux comprendre le problème avec certains pseudo-code. Supposons que votre x-gamme va de 1 à 3, et votre y-plage va de 1 à 3.
Vous avez correctement configuré les 2 boucles
Maintenant considérer les valeurs qui sera imprimé à //faire des choses, dans des paires comme (x, y):
(1, 1) , (1, 2), (1, 3), (2, 1), (2, 2), et ainsi de suite jusqu'à ce que (3, 3);
Évidemment, vous voulez que le produit doit être affichée, donc créer une variable z = x * y à l'intérieur de la boucle de
D'impression z et laisser un espace, parce que vous souhaitez imprimer à la valeur suivante, sans qu'il soit adjacente à la première valeur.
Cela permettra d'imprimer toutes vos solutions en ligne droite, ligne simple. Mais vous voulez qu'il soit dans une matrice de toute évidence. La réponse est simple, un simple changement, en prenant une seule ligne de code. Après chaque cycle complet de votre intérieur de la boucle, vous terminez une rangée de multiplication (de réfléchir à la raison). Donc la solution est qu'après ta boucle interne est terminée, juste avant d'aller à la prochaine boucle externe de la valeur de x, que vous voulez imprimer une nouvelle ligne. Dans l'ensemble, nous avons quelque chose comme:
Et vous avez terminé. Vous avez juste besoin de le mettre dans le code, ainsi que d'accepter la saisie de l'utilisateur au lieu de codage en dur des que la fourchette de 1 à 3, ou quoi que ce soit. C'est trivial, et je suis sûr que vous serez en mesure de les mettre ensemble.
changer le i+j, i*j
btw, vous imprimez seulement la moitié de la matrice
Vous devez utiliser "*" au lieu de "+" ?
Comme ceci:
Et après cela, vous voudrez peut-être penser la mise en forme!? Mon conseil: pensez à la longueur de la plus grande valeur (est toujours x*y) et "reservice" assez d'espace pour lui!
Changement:
À: