Comme indiqué, certains numéros spéciaux peuvent être à la fois <
et >=
, de sorte que votre critique est tout simplement droit.
La question est: que faites vous voulez le code comme ceci en premier lieu? Pourquoi avez-vous même envisager de rendre la vie si difficile pour vous et les autres (les gens qui ont besoin de maintenir votre code)? Juste le fait que vous êtes assez intelligent pour en déduire qu' <
et >=
devrait couvrir tous les cas ne signifie pas que vous avez à rendre le code plus complexe que nécessaire. Ce qui se passe pour la physique va pour le code de trop: rendre les choses aussi simples que possible, mais pas plus (je crois que Einstein a dit cela).
Pensez à ce sujet. Qu'essayez-vous de réaliser? Doit être quelque chose comme ceci: "Retour 0 si l'entrée est inférieure à 1, renvoyer 1 sinon.' Ce que vous avez fait est d'ajouter de l'intelligence en disant ... oh mais cela signifie que je retourne 1 si t est supérieur ou égal à 1. Ce genre de inutile 'x implique y' est, nécessitant davantage penser à travailler pour le compte du responsable. Si vous pensez que c'est une bonne chose, je vous conseille de faire une couple d'années du code de l'entretien vous-même.
Si c'était mon examen, je voudrais faire une autre remarque. Si vous utilisez un 'si' l'instruction, puis vous pouvez faire ce que vous voulez dans toutes les branches. Mais dans ce cas, vous ne le faites pas "n'importe quoi". Tout ce que vous voulez faire est de retourner la valeur 0 ou 1 selon que t<1 ou pas. Dans ce cas, je pense que le '?:' l'énoncé est beaucoup mieux et plus lisible que l' if
déclaration. Donc:
return t<1 ? 0 : 1;
Je sais que l' ?:
opérateur est interdit dans certaines entreprises, et je trouve qu'une chose horrible à faire. ?:
correspond normalement beaucoup mieux avec les spécifications, et il peut rendre le code donc beaucoup plus facile à lire (si utilisé avec soin) ...