不知道如何描述这行代码

Wer*_*wer -2 java

它工作正常但我不确定它是如何工作的,任何人都可以解释它吗?谢谢

public static int gcd(int a, int b) { 
  return b==0 ? a : gcd(b, a%b); 
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*aux 7

你有一个三元运算符(bool ? x : y).这样的操作员将评估问号前的陈述.如果评估为true,则将选择x,否则为y.

这意味着它的逻辑等同于:

public static int gcd(int a, int b)
{ 
  if (b == 0)
      return a;
  else
      return gcd(b, a % b);
}
Run Code Online (Sandbox Code Playgroud)

接下来,a % b计算两个数的模数,这是整数除法的余数a / b.例如:7 % 2结果114 % 5收益率4.