这是我的程序,现在26%6的结果应该是2.但是我的程序给了我20,14,8和2.我该如何解决这个问题?我是初学者,所以请说些我理解的内容!
public class Modulus {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int A, B;
System.out.println("Enter first number:");
A = scan.nextInt();
System.out.println("Enter second number:");
B = scan.nextInt();
int C = A;
while (C >= B) {
C = C - B;
System.out.println("The remainder is: " + C);
}
}
}
答案 0 :(得分:2)
将System.out.println
放在while
循环之外。否则,每次从C中减去B的值时都会打印
while (C>= B)
{
C= C-B;
System.out.println("The remainder is: " + C ) ; // printing each time
}
到
while (C>= B)
{
C= C-B;
}
System.out.println("The remainder is: " + C ) ;
答案 1 :(得分:1)
您在循环体内打印。我认为你需要在循环完成时只打印一次。
答案 2 :(得分:1)
我认为您知道可以直接使用%
运算符吗?例如,System.out.println("The remainder is: " + (A % B));
。
你的循环错误是你的print语句在循环中;它应该在结束后,只在减法结束后打印。
P.S。考虑为负数或零数添加一些特殊处理,或者在这种情况下你的程序可以循环很长时间......
答案 3 :(得分:0)
像这样
while (C>= B)
{
C= C-B;
}
System.out.println("The remainder is: " + (A % B) ) ;
}
答案 4 :(得分:0)
我会这样做(消除C
变量,使用 Java命名约定重命名变量并关闭scan
实例):
import java.util.Scanner;
public class Modulus {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int operand1, operand2;
System.out.println("Enter first number:");
operand1 = scan.nextInt();
System.out.println("Enter second number:");
operand2 = scan.nextInt();
while (operand1 >= operand2) {
operand1 = operand1 - operand2;
}
System.out.println("The remainder is: " + operand1);
scan.close();
}
}