si
1. Si declaración
Libro P39 Ejemplo 3-3:
#include <iostream>
usando el espacio de nombres estándar;
vacío principal()
{ int a, b, max; cout << "Ingrese dos números: " << endl; cin >> a >> b; máx = a; si (máx < b) máx = b; cout << "max=" << max << endl; }
Problemas encontrados en este proyecto:
1. ¿Debe escribirse en forma de "sentencia if (<expresión>)"?
si <expresión>
declaración
El formulario también puede ser, por ejemplo:
#include <iostream>
usando el espacio de nombres estándar;
vacío principal()
{ int a, b, max; cout << "Ingrese dos números: " << endl; cin >> a >> b; máx = a; si (máx < b) máx = b; cout << "max=" << max << endl; }
2. Al ingresar cin, siga ingresando >>, no cambie repentinamente para ingresar "," en el medio
Esto dará un error: la variable no está inicializada. ejemplo:
#include <iostream>
usando el espacio de nombres estándar;
int main()
{ int a, b, max; cout << "Ingrese dos números: " << endl; cin >> a, b; máx = a; si (máx < b) máx = b; cout << "max=" << max << endl; }
3. Al ingresar cin, ingrese múltiples variables y use "enter (tecla de avance de línea)" para distinguir diferentes variables en lugar de "," para distinguir, por ejemplo:
En este momento, no importa qué valor se ingrese a la variable b, el resultado es solo un
(Porque el uso de "," se ignora de forma predeterminada después de "," o el valor predeterminado es 0 después de ",")
4. La declaración "si... entonces..." en VISUAL BASIC no funciona en C++
(entonces no se puede ingresar después de la instrucción if), por ejemplo:
#include <iostream>
usando el espacio de nombres estándar;
int main()
{ int a, b, max; cout << "Ingrese dos números: " << endl; cin >> a >> b; máx = a; si (max < b) entonces max = b; cout << "max=" << max << endl; }
2. La sentencia if...else
Libro P39 Ejemplo 3-4:
#include <iostream>
usando el espacio de nombres estándar;
int main()
{ int a, b; cout << "Ingrese dos números:" << endl; cin >> a >> b; if (a > b) cout << "max=" << a << endl; else cout << "max=" << b << endl; }
3. if...else...if declaración
Libro P40 Ejemplo 3-5:
#include <iostream>
usando el espacio de nombres estándar;
int principal()
{ char c; cout << "ingrese un caracter: " << endl; cin >> c; if (c < 32) cout << "Este es un carácter de control". <<endl; else if (c >= '0' && c <= '9') cout << "Esto es un dígito". <<endl; else if (c >= 'A' && c <= 'Z') cout << "Esta es una letra mayúscula". << finl; else if (c >= 'a' && c <= 'z') cout << "Esta es una letra minúscula.
Aviso:
Las cadenas de entrada se tratan como letras mayúsculas/minúsculas de salida, por ejemplo:
En mi opinión, esta afirmación if...else...if en realidad no es if...else...if en esencia, sino if...else if
Debido a que el efecto de la instrucción if...else...if (como sigue y el libro P40), el diagrama de flujo dibujado no es el mismo:
ejemplo:
#include <iostream>
usando el espacio de nombres estándar;
int principal()
{ int a; cin >> un ; si (a==1) cout << 1<< endl; else cout<< 2 << endl; if (a == 2) cout <<3 << endl; }
resultado:
Para verificar si la segunda declaración if se ejecuta después de que ocurra la primera declaración if, diseñamos el siguiente programa:
uno.
#include <iostream>
usando el espacio de nombres estándar;
int principal()
{ int a; cin >> a; if (a == 1) { cout << 1 << endl; a++;//a=a++(先运算,后自增) } else cout << 2 << endl; if (a == 2) cout << 3 << endl; }
dos.
#include <iostream>
usando el espacio de nombres estándar;
int principal()
{ int a; cin >> a; if (a == 1) { cout << 1 << endl; ++a; } else cout << 2 << endl; if (a == 2) cout << 3 << endl; }
Los resultados son todos:
ingresar | producción |
1 | 1 3 |
2 |
2 3 |
El mismo resultado de los dos programas muestra que:
Cuando se ingresa a = 1, el programa primero ejecuta la primera declaración if, realiza un autoincremento y luego ejecuta la segunda declaración if
Es decir: la segunda declaración if se ejecuta después de que se ejecuta la primera declaración.
Demuestra nuestro diagrama de flujo anterior para este programa. No está mal.
Por tanto, para el sentido expresado en el libro, la frase razonable correspondiente debería ser:
if...else if declaración
Aquí estamos discutiendo la situación en la que "{ }" no está incluido en la función función en C++.
Para conocer algunas reglas en lenguaje C y el uso interno de "{ }", consulte: