使用循环(在Java中)乘以数字

时间:2016-02-24 00:11:06

标签: java

我试图使用循环将两个数字相乘。方法应该是添加数字然后循环,以使两个输入相乘。第一个必须使用while循环,这就是我所拥有的:

public static int wloopmultiply(int x, int y) {
    int a = x;
    while (x > 0) {
        y = y + y;
        a--;
    }

不确定这里发生了什么以及它为什么不起作用。有帮助吗?此外,我需要做同样的事情,但使用递归而不是while循环,然后最后使用for循环。有什么提示吗?感谢。

4 个答案:

答案 0 :(得分:2)

while循环的条件是x > 0,但是你在循环体中递减a并且x保持不变,因此会导致无限循环。

答案 1 :(得分:2)

有三个问题

  1. 在减少x
  2. 的值的同时循环a
  3. y = y + y; (第一次迭代,y=5,所以它是5 + 5,下一次迭代y=10,所以它是10 + 10)。
  4. 您需要在方法的末尾添加返回值
  5.  public static int wloopmultiply(int x, int y) {
        int a = x-1;
        while (a > 0) {
            y = y + x;
            a--;
        }
        return y;
    }
    

    这三项改变应该使一切顺利

答案 2 :(得分:0)

循环非常简单:

int multiply(int x, int y){
   int res = 0;
   while(x > 0){
      res += y;
      x--;
   }
   return res;
}

int multiply(int x, int y){
   int res = 0;
   for(int i = 0; i < x; i++){
      res += y;
   }
   return res;
}

在这里,我们将在每个递归步骤中再添加一个y

int multiply(x, y){
   if(x == 0)
      return 0;
   return multiply(x - 1, y) + y;
}

这些示例适用于正整数,可能导致int溢出。尝试自己改进它们;)

答案 3 :(得分:0)

循环将是这样的:

int multiply(int x, int y){
   int result = 0;
   while(x > 0){
      result += y;
      x--;
   }
   return result;
}

我们可以致电multiply(int x, int y),例如System.out.println(multiply(3,5));     输出:15