&&
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## &&

&& — Opérateur ET logique.

## Description

Les opérateurs arithmétiques réalisent les opérations de changement de signe (négation), de signe inchangé, ET logique, OU logique, addition, soustraction, multiplication et division. Notez qu'une valeur ou une expression peut être placée entre deux de ces opérateurs, lesquels peuvent la prendre comme opérande de gauche ou de droite, comme dans

a + b * c.

Trois règles s'appliquent dans de tels cas :

1. * et / s'appliquent à leurs voisins plus fortement que + et −. Ainsi l'expression ci-dessus s'interprète comme

a + (b * c)

avec * prenant b et c puis + prenant a et b * c.

2. + et − sont prioritaires sur &&, qui devance lui-même || :

a && b - c || d

est interprété comme

(a && (b - c)) || d

3. Quand deux opérateurs sont d'égale importance, les opérations ont lieu de gauche à droite :

a - b - c

est interprété comme

(a - b) - c

On peut utiliser des parenthèses pour forcer un groupement particulier.

## Syntaxe

    a && b  (ET logique ; pas de taux audio)

où les arguments a et b peuvent être des expressions.

## Exemples

Voici un exemple de l'opérateur logique AND. Il utilise le fichier opand.csd.

Exemple 22. Exemple de l'opcode opand.

Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    -odac    ;;;realtime audio out
    ;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o opand.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs  = 1

    instr 1

    kval    randomh 0, 1.2, 20		;choose between 0 and 1.2
    if kval >0 && kval<=.5 then		;3 possible outcomes
    	kval = 1
    elseif kval >.5 && kval<=1 then
    	kval =2
    elseif kval >1 then
    	kval =3
    endif

    printk2 kval				;print value when it changes
    asig    poscil .7, 440*kval, 1
            outs asig, asig

    endin
    </CsInstruments>
    <CsScore>
    f1 0 16384 10 1

    i 1 0 5
    e
    </CsScore>
    </CsoundSynthesizer>

Sa sortie contiendra des lignes comme celles-ci :

     i1     0.00000
     i1     3.00000
     i1     1.00000
     i1     3.00000
     i1     1.00000
     i1     2.00000
     i1     3.00000
    .....

## Voir aussi

-, +, ||, *, /, ^, %

Précédent | Niveau supérieur | Suivant
% | Sommaire | >