Вот два альтернативных решения, которые несколько выглядят «лучше»:
sum2()
с switch
, поэтому нет, если операторы sum3()
с nested ternary
выражениями делает его очень коротким.
Рекомендуется избегать множественных return
, чтобы вы могли сохранить единственную запись - простую точку выхода алгоритма, поддержка отладки.
Я оставил фрагмент обернутым, чтобы вы могли попробовать его с помощью одной копии / вставки.
public class Main{
public static int sum2(int[] nums) {
int sum = 0;
switch (nums.length) {
case 0:
break;
case 1:
sum = nums[0];
break;
default:
sum = nums[0] + nums[1];
break;
}
return sum;
}
public static int sum3(int[] nums) {
return nums.length == 1 ? nums[0] : nums.length >= 2 ? nums[0] + nums[1] : 0;
}
public static void main(String []args){
int[] nums1 = {11, 13, 1, 0}; // expected: 24
int[] nums2 = {3}; // expected: 3
int[] nums3 = {}; // expected: 0
System.out.println("sum2: " + sum2(nums1));
System.out.println("sum2: " + sum2(nums2));
System.out.println("sum2: " + sum2(nums3));
System.out.println(' ');
System.out.println("sum3: " + sum3(nums1));
System.out.println("sum3: " + sum3(nums2));
System.out.println("sum3: " + sum3(nums3));
}
}
Вывод:
sum2: 24
sum2: 3
sum2: 0
sum3: 24
sum3: 3
sum3: 0