Fiz o desafio de simples de somar os numeros pares tanto em Go quanto em Java, mas resolvi nao usar o if como estava na resolucao do Instrutor, pois seguinto principios do Object Callisthenics, e bom manter apenas um nivel de identacao por codigo, ate porque o if e meio que opicional se voce for parar para penser, se quiser apenas os numeros pares, baste fazer o incremento do 'i' somando de dois em dois i+=2
. Desta forma voce evita ter de usar if para verificar cada numero, o que pode custa dependendo do valor passado. AI e so passar ou 0 ou 1 como valor inicial, 0 para numeros pares e 1 para impares. O resultado foi este:
Java
Fiz em Java de tres formas distintas para se conseguir o resultado da soma dos pares:
package test;
import com.github.rickmvi.jtoolbox.console.IO;
import com.github.rickmvi.jtoolbox.util.MathUtils;
import com.github.rickmvi.jtoolbox.util.Numbers;
import java.util.stream.IntStream;
public class SumEven {
public static void main(String[] args) {
int sum = 0;
for (int i = 0; i <= 100; i += 2) {
sum += i;
}
IO.println(sum);
int res = IntStream.rangeClosed(0, 100)
.filter(Numbers::isEven)
.sum();
IO.println(res);
IO.println(MathUtils.sumEvenInt(100));
}
}
Go
package main
import "fmt"
func main() {
sum := 0
sum = sumEven(sum)
fmt.Println(sum)
}
func sumEven(sum int) int {
for i := 0; i <= 100; i += 2 {
sum += i
}
return sum
}
Sainda para Go e Java: