Table des matières
Défi n°1 : Comptez combien de nombres impairs il y a dans le tableau numérique
Défi n°2 : Déterminer si une date est un week-end ou un jour ouvrable
Défi n°3 : La fonction doubleur (ici les dragons), traduction Don' t come out~Awkward~
Résumé
Maison développement back-end tutoriel php Exemples de programmation sans instructions If

Exemples de programmation sans instructions If

Feb 01, 2018 pm 02:27 PM
实例 编程 语句

À partir de maintenant, essayez d'éviter d'utiliser les instructions if pour mettre en œuvre notre activité

Vous vous demandez peut-être quels sont les avantages de ne pas utiliser if ? Eh bien ~, peut-être qu'il n'y a pas d'avantage évident, c'est juste une façon différente de penser pour résoudre le problème. Il n'y a rien de mal avec if-else, mais dans certains cas, un grand nombre de if-else peut rendre le code moins lisible. Vous trouverez ci-dessous quelques exemples pour vous aider à ressentir le mystère.

Conseil de codage : essayez de coder sans instructions If

Exemples de programmation sans instructions If

Défi n°1 : Comptez combien de nombres impairs il y a dans le tableau numérique

Étant donné un tableau de type entier, comptez le nombre de nombres impairs dans le tableau

const arrayOfIntegers = [1, 4, 5, 9, 0, -1, 5];
Copier après la connexion

si implémentation

let counter = 0;
arrayOfIntegers.forEach((integer) => {
  const remainder = Math.abs(integer % 2);
  if (remainder === 1) {
    counter++;
  }
});
console.log(counter);
Copier après la connexion

implémentation non-if

let counter = 0;
arrayOfIntegers.forEach((integer) => {
  const remainder = Math.abs(integer % 2);
  // 偶数除2的余数为零,奇数的余数为一
  counter += remainder;
});
console.log(counter);
Copier après la connexion

Remarque : dans les deux exemples ci-dessus, forEach modifiera le tableau d'origine et la méthode est 可变的, ce qui viole le concept actuel de programmation fonctionnelle immutable. objet de cet article. En comparant les deux exemples, l'implémentation de if语句 peut être plus compatible et peut être adaptée à la situation où l'élément du tableau est 小数. Si les éléments du tableau sont de type virgule flottante, le deuxième exemple ne fonctionnera pas correctement.

Défi n°2 : Déterminer si une date est un week-end ou un jour ouvrable

implémente une fonction qui prend un objet date new Date() en entrée et renvoie si le jour en cours est 工作日 ou 周末 en fonction de dates différentes.

implémentation if

const weekendOrWeekday = inputDate => {
  const day = inputDate.getDay();
  if (day === 0 || day === 6) {
    return 'weekend';
  }

  return 'weekday';
  // Or, for ternary fans:
  // return (day === 0 || day === 6) ? 'weekend' : 'weekday';
};
console.log(weekendOrWeekday(new Date()));
Copier après la connexion

implémentation non-if

const weekendOrWeekday = (inputDate) => {
  const day = inputDate.getDay();
  return weekendOrWeekday.labels[day] ||
         weekendOrWeekday.labels['default'];
};
weekendOrWeekday.labels = {
  0: 'weekend',
  6: 'weekend',
  default: 'weekday'
};
console.log(weekendOrWeekday(new Date()));
Copier après la connexion

Avez-vous remarqué que le nombre entre if语句 représente quel jour est le week-end et détermine le conditionnel distribution C'est plus fragmenté. Ce que nous devons faire est de faire correspondre les nombres aux types 周末或工作日 Comme dans l'exemple 2, vous pouvez utiliser un objet ou une carte pour stocker la relation correspondante.

En comparant les deux exemples ci-dessus, on voit clairement que l'implémentation 非if代码 a une meilleure lisibilité et évolutivité

Défi n°3 : La fonction doubleur (ici les dragons), traduction Don' t come out~Awkward~

implémente une fonction de doubleur, et effectue le traitement suivant en fonction de différentes entrées :

  1. Si l'entrée est de type number, faites double traitement (5 => 10, -10 => -20)

  2. Si l'entrée est de type string, répétez chaque caractère (« bonjour » => ' hheelloo')

  3. Si l'entrée est de type function, appelez et exécutez la fonction deux fois

  4. Si l'entrée est de type array, faites ceci pour chaque élément du tableau doublerTraitement

  5. Si l'entrée est de type object, effectuez un doublertraitement sur chaque attribut de l'objet

switch La mise en œuvre de

const doubler = (input) => {
  switch (typeof input) {
    case 'number':
      return input + input;
    case 'string':
      return input
        .split('')
        .map(letter => letter + letter)
        .join('');
    case 'object':
      Object.keys(input)
            .map(key => (input[key] = doubler(input[key])));
      return input;
    case 'function':
      input();
      input();
  }
};
console.log(doubler(-10));
console.log(doubler('hey'));
console.log(doubler([5, 'hello']));
console.log(doubler({ a: 5, b: 'hello' }));
console.log(
  doubler(function() {
    console.log('call-me');
  }),
);
Copier après la connexion

non-switch mise en œuvre de

const doubler = (input) => {
  return doubler.operationsByType[typeof input](input);
};
doubler.operationsByType = {
  number: (input) => input + input,
  string: (input) =>
    input
      .split('')
      .map((letter) => letter + letter)
      .join(''),
  function: (input) => {
    input();
    input();
  },
  object: (input) => {
    Object.keys(input)
          .map((key) => (input[key] = doubler(input[key])));
    return input;
  },
};
console.log(doubler(-10));
console.log(doubler('hey'));
console.log(doubler([5, 'hello']));
console.log(doubler({ a: 5, b: 'hello' }));
console.log(
  doubler(function() {
    console.log('call-me');
  }),
);
Copier après la connexion

est similaire au défi n°2, agrégeant les valeurs de condition ​​ensemble pour un traitement unifié.

Résumé

Lorsqu'il existe de nombreuses conditions de jugement pour if-else, les conditions sont traitées de manière centralisée (utilisez des objets pour stocker leurs relations correspondantes - les conditions sont utilisées comme clés et le traitement est utilisé comme valeurs). L'avantage est qu'il devient plus facile d'ajouter ou de supprimer une certaine condition, et le code est plus lisible. Il est recommandé d'utiliser la correspondance key-value pour remplacer une partie du if-else jugement conditionnel.

Recommandations associées :

Parlez de la situation actuelle, des perspectives et des opportunités des déclarations if

Le code de la déclaration elseif basé sur PHP Résumé des exemples

Explication détaillée de l'instruction if en SQL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Supprimez les valeurs en double du tableau PHP à l'aide d'expressions régulières Supprimez les valeurs en double du tableau PHP à l'aide d'expressions régulières Apr 26, 2024 pm 04:33 PM

Comment supprimer les valeurs en double du tableau PHP à l'aide d'expressions régulières : utilisez l'expression régulière /(.*)(.+)/i pour faire correspondre et remplacer les doublons. Parcourez les éléments du tableau et vérifiez les correspondances à l'aide de preg_match. S'il y a une correspondance, ignorez la valeur ; sinon, ajoutez-la à un nouveau tableau sans valeurs en double.

A quoi sert la programmation et à quoi sert de l'apprendre ? A quoi sert la programmation et à quoi sert de l'apprendre ? Apr 28, 2024 pm 01:34 PM

1. La programmation peut être utilisée pour développer divers logiciels et applications, notamment des sites Web, des applications mobiles, des jeux et des outils d'analyse de données. Ses domaines d'application sont très larges, couvrant presque tous les secteurs, notamment la recherche scientifique, la santé, la finance, l'éducation, le divertissement, etc. 2. L'apprentissage de la programmation peut nous aider à améliorer nos compétences en résolution de problèmes et nos capacités de réflexion logique. Lors de la programmation, nous devons analyser et comprendre les problèmes, trouver des solutions et les traduire en code. Cette façon de penser peut cultiver nos capacités analytiques et abstraites et améliorer notre capacité à résoudre des problèmes pratiques.

Créez des applications basées sur un navigateur avec Golang Créez des applications basées sur un navigateur avec Golang Apr 08, 2024 am 09:24 AM

Créez des applications basées sur un navigateur avec Golang Golang se combine avec JavaScript pour créer des expériences frontales dynamiques. Installez Golang : visitez https://golang.org/doc/install. Configurez un projet Golang : créez un fichier appelé main.go. Utilisation de GorillaWebToolkit : ajoutez le code GorillaWebToolkit pour gérer les requêtes HTTP. Créer un modèle HTML : créez index.html dans le sous-répertoire des modèles, qui est le modèle principal.

Collection d'énigmes de programmation C++ : stimule la réflexion et améliore les compétences en programmation Collection d'énigmes de programmation C++ : stimule la réflexion et améliore les compétences en programmation Jun 01, 2024 pm 10:26 PM

Les énigmes de programmation C++ couvrent les concepts d'algorithme et de structure de données tels que la séquence de Fibonacci, la factorielle, la distance de Hamming, les valeurs maximales et minimales des tableaux, etc. En résolvant ces énigmes, vous pouvez consolider vos connaissances en C++ et améliorer la compréhension des algorithmes et vos compétences en programmation.

La clé du codage : libérer la puissance de Python pour les débutants La clé du codage : libérer la puissance de Python pour les débutants Oct 11, 2024 pm 12:17 PM

Python est un langage d'introduction à la programmation idéal pour les débutants grâce à sa facilité d'apprentissage et ses fonctionnalités puissantes. Ses bases incluent : Variables : utilisées pour stocker des données (nombres, chaînes, listes, etc.). Type de données : Définit le type de données dans la variable (entier, virgule flottante, etc.). Opérateurs : utilisés pour les opérations mathématiques et les comparaisons. Flux de contrôle : contrôlez le flux d'exécution du code (instructions conditionnelles, boucles).

Résolution de problèmes avec Python : débloquez des solutions puissantes en tant que codeur débutant Résolution de problèmes avec Python : débloquez des solutions puissantes en tant que codeur débutant Oct 11, 2024 pm 08:58 PM

Python permet aux débutants de résoudre des problèmes. Sa syntaxe conviviale, sa bibliothèque complète et ses fonctionnalités telles que les variables, les instructions conditionnelles et les boucles permettent un développement de code efficace. De la gestion des données au contrôle du flux du programme et à l'exécution de tâches répétitives, Python fournit

Obtenez des modules Go rapidement et facilement avec Go Get Obtenez des modules Go rapidement et facilement avec Go Get Apr 07, 2024 pm 09:48 PM

Grâce à GoGet, vous pouvez obtenir rapidement et facilement des modules Go. Les étapes sont les suivantes : Exécutez dans le terminal : goget[module-path], où module-path est le chemin du module. GoGet télécharge automatiquement le module et ses dépendances. L'emplacement de l'installation est spécifié par la variable d'environnement GOPATH.

Démystifier C : un chemin clair et simple pour les nouveaux programmeurs Démystifier C : un chemin clair et simple pour les nouveaux programmeurs Oct 11, 2024 pm 10:47 PM

C est un choix idéal pour les débutants qui souhaitent apprendre la programmation système. Il contient les composants suivants : fichiers d'en-tête, fonctions et fonctions principales. Un simple programme C capable d'imprimer "HelloWorld" a besoin d'un fichier d'en-tête contenant la déclaration de fonction d'entrée/sortie standard et utilise la fonction printf dans la fonction principale pour imprimer. Les programmes C peuvent être compilés et exécutés à l'aide du compilateur GCC. Après avoir maîtrisé les bases, vous pouvez passer à des sujets tels que les types de données, les fonctions, les tableaux et la gestion des fichiers pour devenir un programmeur C compétent.

See all articles