[英]Making a basic multiplication table in java using loop
嗨,我是初學者,所以請不要使用任何復雜的東西。 這是我的意思的SS。 到目前為止, http://prntscr.com/1ffec0不必擔心垂直和水平方向的數字會顯示它是什么列和行號。 我有我的代碼,但對如何執行以及如何使其倍增感到完全困惑。
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();
}
}
}
我不會直接給您答案,但是我會通過一些偽代碼來幫助您更好地理解問題。 假設您的x范圍從1到3,並且您的y范圍也從1到3。
您正確設置了2個循環
Loop x = 1 to 3
Loop y = 1 to 3
//Do stuff
End innerloop
End outerloop
現在考慮將在// do東西上打印的值,成對出現(x,y),如:
(1,1),(1、2),(1、3),(2、1),(2、2)等,直到(3,3);
顯然,您希望顯示產品,因此在循環內創建一些變量z = x * y
//Do stuff:
z = x * y
Print z + " "
打印出z並留一個空格,因為您要打印下一個值而不使其與第一個值相鄰。
這將在一條直線上打印所有解決方案。 但是您顯然希望它在矩陣中。 答案是簡單的簡單更改,僅需一行代碼。 在內部循環的每個完整周期之后,您基本上完成了一行乘法(思考為什么)。 因此解決方案是,在您的內循環完成運行之后,就在轉到下一個x的外循環值之前,您要打印新行。 總而言之,我們有這樣的東西:
Loop x = 1 to 3
Loop y = 1 to 3
z = x * y
Print z + " "
End innerloop
Print NewLine // "\n" is the way to do that
End outerloop
這樣就完成了。 您只需要將其放入代碼中,並接受用戶輸入即可,而不是對范圍從1到3或任何其他范圍進行硬編碼。 這是微不足道的,我相信您將能夠將其組合在一起。
將i + j更改為i * j順便說一句,您僅打印矩陣的一半
您需要使用“ *”代替“ +”嗎?
像這樣:
public static void print(int x, int y) {
for (int i = 1; i <= x; i++) {
for (int j = 1; j <= y; j++) {
System.out.print(" " + i * j);
}
System.out.println();
}
}
然后,您可能要考慮格式!! 我的建議:考慮最長值的長度(始終為x * y),並為其“預留”足夠的空間!
更改:
System.out.print(" "+i+j);
至:
if ((i + j) <= 9) {
System.out.print(i + j + " ");
} else if ((i + j) <= 99) {
System.out.print(i + j + " ");
} else
System.out.print(i + j + " ");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.