Основы языка программирования C++ с применением объектно-ориентированного программирования. Чернышов М.К. - 27 стр.

UptoLike

Составители: 

ɪɚɬɨɪɚɦ ɞɪɭɝɢɯ ɹɡɵɤɨɜ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɢ ɦɨɠɟɬ ɢɫɩɨɥɶɡɨɜɚɬɶɫɹ ɜ ɫɨ-
ɤɪɚɳɟɧɧɨɣ ɢ ɩɨɥɧɨɣ ɮɨɪɦɚɯ, ɤɨɬɨɪɵɦ ɫɨɨɬɜɟɬɫɬɜɭɸɬ ɫɯɟɦɵ:
if (ɜɵɪɚɠɟɧɢɟ-ɭɫɥɨɜɢɟ) ɨɩɟɪɚɬɨɪ;
if (ɜɵɪɚɠɟɧɢɟ-ɭɫɥɨɜɢɟ) ɨɩɟɪɚɬɨɪ1 else ɨɩɟɪɚɬɨɪ2;
ȼ ɫɨɤɪɚɳɟɧɧɨɣ ɮɨɪɦɟ ɭɫɥɨɜɧɨɝɨ ɨɩɟɪɚɬɨɪɚ ɜɵɱɢɫɥɹɟɬɫɹ ɜɵɪɚɠɟɧɢɟ-
ɭɫɥɨɜɢɟ, ɢ, ɟɫɥɢ ɟɝɨ ɡɧɚɱɟɧɢɟ ɨɬɥɢɱɧɨ ɨɬ ɧɭɥɹ, ɜɵɩɨɥɧɹɟɬɫɹ ɫɥɟɞɭɸɳɢɣ ɡɚ
ɭɫɥɨɜɢɟɦ ɨɩɟɪɚɬɨɪ, ɜ ɩɪɨɬɢɜɧɨɦ ɫɥɭɱɚɟ ɧɟ ɩɪɨɢɡɜɨɞɢɬɫɹ ɧɢɤɚɤɢɯ ɞɟɣɫɬ-
ɜɢɣ.
ȼ ɩɨɥɧɨɣ ɮɨɪɦɟ ɭɫɥɨɜɧɨɝɨ ɨɩɟɪɚɬɨɪɚ ɩɪɢ ɧɟɧɭɥɟɜɨɦ ɡɧɚɱɟɧɢɢ ɜɵɪɚ-
ɠɟɧɢɹ-ɭɫɥɨɜɢɹ ɜɵɩɨɥɧɹɟɬɫɹ
ɨɩɟɪɚɬɨɪ1 ɫ ɩɨɫɥɟɞɭɸɳɢɦ ɩɟɪɟɯɨɞɨɦ ɤ ɫɥɟ-
ɞɭɸɳɟɦɭ ɨɩɟɪɚɬɨɪɭ ɩɪɨɝɪɚɦɦɵ, ɚ ɩɪɢ ɧɭɥɟɜɨɦ ɡɧɚɱɟɧɢɢ ɜɵɪɚɠɟɧɢɹ ɭɫɥɨ-
ɜɢɹ ɜɵɩɨɥɧɹɟɬɫɹ
ɨɩɟɪɚɬɨɪ2 ɫ ɩɟɪɟɯɨɞɨɦ ɤ ɫɥɟɞɭɸɳɟɦɭ ɨɩɟɪɚɬɨɪɭ ɩɪɨ-
ɝɪɚɦɦɵ.
ɉɟɪɟɤɥɸɱɚɬɟɥɶ ɩɨɡɜɨɥɹɟɬ ɜɵɛɪɚɬɶ ɨɞɧɭ ɢɡ ɧɟɫɤɨɥɶɤɢɯ ɜɨɡɦɨɠɧɵɯ
ɜɟɬɜɟɣ ɜɵɱɢɫɥɟɧɢɣ ɢ ɫɬɪɨɢɬɫɹ ɩɨ ɫɯɟɦɟ:
switch (ɰɟɥɨɟ_ɭɩɪɚɜɥɹɸɳɟɟ_ɜɵɪɚɠɟɧɢɟ) ɨɩɟɪɚɬɨɪ
Ɉɩɟɪɚɬɨɪ ɜ ɷɬɨɦ ɫɥɭɱɚɟ ɩɪɟɞɫɬɚɜɥɹɟɬ ɫɨɛɨɣ ɬɟɥɨ ɩɟɪɟɤɥɸɱɚɬɟɥɹ,
ɩɪɚɤɬɢɱɟɫɤɢ ɜɫɟɝɞɚ ɹɜɥɹɟɬɫɹ ɫɨɫɬɚɜɧɵɦ ɢ ɢɦɟɟɬ ɬɚɤɨɣ ɜɢɞ:
{
case ɤɨɧɫɬɚɧɬɚ1: ɨɩɟɪɚɬɨɪɵ
case ɤɨɧɫɬɚɧɬɚ2: ɨɩɟɪɚɬɨɪɵ
..........................
default: ɨɩɟɪɚɬɨɪɵ
}
ȼɵɩɨɥɧɟɧɢɟ ɩɟɪɟɤɥɸɱɚɬɟɥɹ ɫɨɫɬɨɢɬ ɜ ɜɵɱɢɫɥɟɧɢɢ
ɭɩɪɚɜɥɹɸɳɟ-
ɝɨ_ɜɵɪɚɠɟɧɢɹ ɢ ɩɟɪɟɯɨɞɟ ɤ ɝɪɭɩɩɟ ɨɩɟɪɚɬɨɪɨɜ, ɩɨɦɟɱɟɧɧɵɯ case-ɦɟɬɤɨɣ,
ɪɚɜɧɨɣ
ɭɩɪɚɜɥɹɸɳɟɦɭ_ɜɵɪɚɠɟɧɢɸ. ȿɫɥɢ ɬɚɤɨɣ case-ɦɟɬɤɢ ɧɟɬ, ɜɵɩɨɥɧɹ-
ɸɬɫɹ ɨɩɟɪɚɬɨɪɵ ɩɨ ɦɟɬɤɟ
default. ɉɭɧɤɬ default ɦɨɠɟɬ ɨɬɫɭɬɫɬɜɨɜɚɬɶ, ɢ
ɬɨɝɞɚ, ɟɫɥɢ
ɭɩɪɚɜɥɹɸɳɟɦɭ_ɜɵɪɚɠɟɧɢɸ ɧɟ ɫɨɨɬɜɟɬɫɬɜɭɟɬ ɧɢ ɨɞɧɚ case-
ɦɟɬɤɚ, ɜɟɫɶ ɩɟɪɟɤɥɸɱɚɬɟɥɶ ɷɤɜɢɜɚɥɟɧɬɟɧ ɩɭɫɬɨɦɭ ɨɩɟɪɚɬɨɪɭ. ɋɥɟɞɭɟɬ ɭɱɢ-
ɬɵɜɚɬɶ, ɱɬɨ ɩɪɢ ɜɵɩɨɥɧɟɧɢɢ ɩɟɪɟɤɥɸɱɚɬɟɥɹ ɩɪɨɢɫɯɨɞɢɬ ɩɟɪɟɯɨɞ ɤ ɨɩɟɪɚ-
ɬɨɪɭ ɫ ɜɵɛɪɚɧɧɨɣ
case-ɦɟɬɤɨɣ, ɢ ɞɚɥɶɲɟ ɨɩɟɪɚɬɨɪɵ ɜɵɩɨɥɧɹɸɬɫɹ ɜ ɟɫɬɟ-
ɫɬɜɟɧɧɨɦ ɩɨɪɹɞɤɟ. ɇɚɩɪɢɦɟɪ, ɜ ɩɟɪɟɤɥɸɱɚɬɟɥɟ
switch (count)
{
case 1: x=1;
case 2: x=2;
case 3: x=3;
default: x=4;
}
ɟɫɥɢ ɡɧɚɱɟɧɢɟ count ɪɚɜɧɨ 1, ɬɨ ɩɨɫɥɟ ɩɟɪɟɯɨɞɚ ɧɚ case 1 ɛɭɞɭɬ ɜɵɩɨɥ-
ɧɟɧɵ ɜɫɟ ɨɩɟɪɚɬɨɪɵ, ɜ ɪɟɡɭɥɶɬɚɬɟ
x ɫɬɚɧɟɬ ɪɚɜɧɵɦ 4. ɑɬɨɛɵ ɪɚɡɞɟɥɢɬɶ
ɜɟɬɜɢ ɩɟɪɟɤɥɸɱɚɬɟɥɹ, ɜ ɤɨɧɰɟ ɤɚɠɞɨɣ ɜɟɬɜɢ ɧɭɠɧɨ ɢɫɩɨɥɶɡɨɜɚɬɶ ɨɩɟɪɚɬɨɪ
break, ɧɟ ɢɦɟɸɳɢɣ ɨɩɟɪɚɧɞɨɜ. ɉɨ ɷɬɨɦɭ ɨɩɟɪɚɬɨɪɭ ɩɪɨɢɫɯɨɞɢɬ ɜɵɯɨɞ ɢɡ
ɩɟɪɟɤɥɸɱɚɬɟɥɹ ɤ ɫɥɟɞɭɸɳɟɦɭ ɨɩɟɪɚɬɨɪɭ ɩɪɨɝɪɚɦɦɵ:
27
ɪɚɬɨɪɚɦ ɞɪɭɝɢɯ ɹɡɵɤɨɜ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɢ ɦɨɠɟɬ ɢɫɩɨɥɶɡɨɜɚɬɶɫɹ ɜ ɫɨ-
ɤɪɚɳɟɧɧɨɣ ɢ ɩɨɥɧɨɣ ɮɨɪɦɚɯ, ɤɨɬɨɪɵɦ ɫɨɨɬɜɟɬɫɬɜɭɸɬ ɫɯɟɦɵ:
     if (ɜɵɪɚɠɟɧɢɟ-ɭɫɥɨɜɢɟ) ɨɩɟɪɚɬɨɪ;
     if (ɜɵɪɚɠɟɧɢɟ-ɭɫɥɨɜɢɟ) ɨɩɟɪɚɬɨɪ1 else ɨɩɟɪɚɬɨɪ2;
     ȼ ɫɨɤɪɚɳɟɧɧɨɣ ɮɨɪɦɟ ɭɫɥɨɜɧɨɝɨ ɨɩɟɪɚɬɨɪɚ ɜɵɱɢɫɥɹɟɬɫɹ ɜɵɪɚɠɟɧɢɟ-
ɭɫɥɨɜɢɟ, ɢ, ɟɫɥɢ ɟɝɨ ɡɧɚɱɟɧɢɟ ɨɬɥɢɱɧɨ ɨɬ ɧɭɥɹ, ɜɵɩɨɥɧɹɟɬɫɹ ɫɥɟɞɭɸɳɢɣ ɡɚ
ɭɫɥɨɜɢɟɦ ɨɩɟɪɚɬɨɪ, ɜ ɩɪɨɬɢɜɧɨɦ ɫɥɭɱɚɟ ɧɟ ɩɪɨɢɡɜɨɞɢɬɫɹ ɧɢɤɚɤɢɯ ɞɟɣɫɬ-
ɜɢɣ.
     ȼ ɩɨɥɧɨɣ ɮɨɪɦɟ ɭɫɥɨɜɧɨɝɨ ɨɩɟɪɚɬɨɪɚ ɩɪɢ ɧɟɧɭɥɟɜɨɦ ɡɧɚɱɟɧɢɢ ɜɵɪɚ-
ɠɟɧɢɹ-ɭɫɥɨɜɢɹ ɜɵɩɨɥɧɹɟɬɫɹ ɨɩɟɪɚɬɨɪ1 ɫ ɩɨɫɥɟɞɭɸɳɢɦ ɩɟɪɟɯɨɞɨɦ ɤ ɫɥɟ-
ɞɭɸɳɟɦɭ ɨɩɟɪɚɬɨɪɭ ɩɪɨɝɪɚɦɦɵ, ɚ ɩɪɢ ɧɭɥɟɜɨɦ ɡɧɚɱɟɧɢɢ ɜɵɪɚɠɟɧɢɹ ɭɫɥɨ-
ɜɢɹ ɜɵɩɨɥɧɹɟɬɫɹ ɨɩɟɪɚɬɨɪ2 ɫ ɩɟɪɟɯɨɞɨɦ ɤ ɫɥɟɞɭɸɳɟɦɭ ɨɩɟɪɚɬɨɪɭ ɩɪɨ-
ɝɪɚɦɦɵ.
     ɉɟɪɟɤɥɸɱɚɬɟɥɶ ɩɨɡɜɨɥɹɟɬ ɜɵɛɪɚɬɶ ɨɞɧɭ ɢɡ ɧɟɫɤɨɥɶɤɢɯ ɜɨɡɦɨɠɧɵɯ
ɜɟɬɜɟɣ ɜɵɱɢɫɥɟɧɢɣ ɢ ɫɬɪɨɢɬɫɹ ɩɨ ɫɯɟɦɟ:
switch (ɰɟɥɨɟ_ɭɩɪɚɜɥɹɸɳɟɟ_ɜɵɪɚɠɟɧɢɟ) ɨɩɟɪɚɬɨɪ
    Ɉɩɟɪɚɬɨɪ ɜ ɷɬɨɦ ɫɥɭɱɚɟ ɩɪɟɞɫɬɚɜɥɹɟɬ ɫɨɛɨɣ ɬɟɥɨ ɩɟɪɟɤɥɸɱɚɬɟɥɹ,
ɩɪɚɤɬɢɱɟɫɤɢ ɜɫɟɝɞɚ ɹɜɥɹɟɬɫɹ ɫɨɫɬɚɜɧɵɦ ɢ ɢɦɟɟɬ ɬɚɤɨɣ ɜɢɞ:
     {
     case ɤɨɧɫɬɚɧɬɚ1: ɨɩɟɪɚɬɨɪɵ
     case ɤɨɧɫɬɚɧɬɚ2: ɨɩɟɪɚɬɨɪɵ
     ..........................
     default: ɨɩɟɪɚɬɨɪɵ
     }
    ȼɵɩɨɥɧɟɧɢɟ ɩɟɪɟɤɥɸɱɚɬɟɥɹ ɫɨɫɬɨɢɬ ɜ ɜɵɱɢɫɥɟɧɢɢ ɭɩɪɚɜɥɹɸɳɟ-
ɝɨ_ɜɵɪɚɠɟɧɢɹ ɢ ɩɟɪɟɯɨɞɟ ɤ ɝɪɭɩɩɟ ɨɩɟɪɚɬɨɪɨɜ, ɩɨɦɟɱɟɧɧɵɯ case-ɦɟɬɤɨɣ,
ɪɚɜɧɨɣ ɭɩɪɚɜɥɹɸɳɟɦɭ_ɜɵɪɚɠɟɧɢɸ. ȿɫɥɢ ɬɚɤɨɣ case-ɦɟɬɤɢ ɧɟɬ, ɜɵɩɨɥɧɹ-
ɸɬɫɹ ɨɩɟɪɚɬɨɪɵ ɩɨ ɦɟɬɤɟ default. ɉɭɧɤɬ default ɦɨɠɟɬ ɨɬɫɭɬɫɬɜɨɜɚɬɶ, ɢ
ɬɨɝɞɚ, ɟɫɥɢ ɭɩɪɚɜɥɹɸɳɟɦɭ_ɜɵɪɚɠɟɧɢɸ ɧɟ ɫɨɨɬɜɟɬɫɬɜɭɟɬ ɧɢ ɨɞɧɚ case-
ɦɟɬɤɚ, ɜɟɫɶ ɩɟɪɟɤɥɸɱɚɬɟɥɶ ɷɤɜɢɜɚɥɟɧɬɟɧ ɩɭɫɬɨɦɭ ɨɩɟɪɚɬɨɪɭ. ɋɥɟɞɭɟɬ ɭɱɢ-
ɬɵɜɚɬɶ, ɱɬɨ ɩɪɢ ɜɵɩɨɥɧɟɧɢɢ ɩɟɪɟɤɥɸɱɚɬɟɥɹ ɩɪɨɢɫɯɨɞɢɬ ɩɟɪɟɯɨɞ ɤ ɨɩɟɪɚ-
ɬɨɪɭ ɫ ɜɵɛɪɚɧɧɨɣ case-ɦɟɬɤɨɣ, ɢ ɞɚɥɶɲɟ ɨɩɟɪɚɬɨɪɵ ɜɵɩɨɥɧɹɸɬɫɹ ɜ ɟɫɬɟ-
ɫɬɜɟɧɧɨɦ ɩɨɪɹɞɤɟ. ɇɚɩɪɢɦɟɪ, ɜ ɩɟɪɟɤɥɸɱɚɬɟɥɟ
      switch (count)
        {
           case 1: x=1;
           case 2: x=2;
           case 3: x=3;
           default: x=4;
        }
ɟɫɥɢ ɡɧɚɱɟɧɢɟ count ɪɚɜɧɨ 1, ɬɨ ɩɨɫɥɟ ɩɟɪɟɯɨɞɚ ɧɚ case 1 ɛɭɞɭɬ ɜɵɩɨɥ-
ɧɟɧɵ ɜɫɟ ɨɩɟɪɚɬɨɪɵ, ɜ ɪɟɡɭɥɶɬɚɬɟ x ɫɬɚɧɟɬ ɪɚɜɧɵɦ 4. ɑɬɨɛɵ ɪɚɡɞɟɥɢɬɶ
ɜɟɬɜɢ ɩɟɪɟɤɥɸɱɚɬɟɥɹ, ɜ ɤɨɧɰɟ ɤɚɠɞɨɣ ɜɟɬɜɢ ɧɭɠɧɨ ɢɫɩɨɥɶɡɨɜɚɬɶ ɨɩɟɪɚɬɨɪ
break, ɧɟ ɢɦɟɸɳɢɣ ɨɩɟɪɚɧɞɨɜ. ɉɨ ɷɬɨɦɭ ɨɩɟɪɚɬɨɪɭ ɩɪɨɢɫɯɨɞɢɬ ɜɵɯɨɞ ɢɡ
ɩɟɪɟɤɥɸɱɚɬɟɥɹ ɤ ɫɥɟɞɭɸɳɟɦɭ ɨɩɟɪɚɬɨɪɭ ɩɪɨɝɪɚɦɦɵ:
                                  27