se
1. Se declaração
Livro P39 Exemplo 3-3:
#include <iostream>
usando namespace std;
void main()
{ int a, b, max; cout << "Por favor, insira dois números: " << endl; cin >> a >> b; máx = a; se (max < b) max = b; cout << "max=" << max << endl; }
Problemas encontrados neste projeto:
1. Deve ser escrito na forma de "instrução if (<expressão>)"?
se <expressão>
declaração
O formulário também pode ser, por exemplo:
#include <iostream>
usando namespace std;
void main()
{ int a, b, max; cout << "Por favor, insira dois números: " << endl; cin >> a >> b; máx = a; se (max < b) max = b; cout << "max=" << max << endl; }
2. Ao inserir cin, continue inserindo >>, não mude repentinamente para "," no meio
Isso dará um erro: a variável não foi inicializada. exemplo:
#include <iostream>
usando namespace std;
int main()
{ int a, b, max; cout << "Por favor, insira dois números: " << endl; cin >> a , b; máx = a; se (max < b) max = b; cout << "max=" << max << endl; }
3. Ao inserir cin, insira várias variáveis e use "enter (tecla de alimentação de linha)" para distinguir variáveis diferentes em vez de "," para distinguir, por exemplo:
Neste momento, não importa qual valor é inserido na variável b, o resultado é apenas um
(Porque o uso de "," é ignorado por padrão após "," ou o padrão é 0 após ",")
4. A instrução "if...then..." no VISUAL BASIC não funciona em C++
(então não pode ser inserido após a instrução if), por exemplo:
#include <iostream>
usando namespace std;
int main()
{ int a, b, max; cout << "Por favor, insira dois números: " << endl; cin >> a >> b; máx = a; se (max < b) então max = b; cout << "max=" << max << endl; }
2. A instrução if...else
Livro P39 Exemplo 3-4:
#include <iostream>
usando namespace std;
int main()
{ int a, b; cout << "Insira dois números:" << endl; cin >> a >> b; if (a > b) cout << "max=" << a << endl; else cout << "max=" << b << endl; }
3. declaração if...else...if
Livro P40 Exemplo 3-5:
#include <iostream>
usando namespace std;
int main()
{ char c; cout << "insira um caractere: " << endl; cin >> c; if (c < 32) cout << "Este é um caractere de controle." <<endl; else if (c >= '0' && c <= '9') cout << "Este é um dígito." <<endl; else if (c >= 'A' && c <= 'Z') cout << "Esta é uma letra maiúscula." << endl; else if (c >= 'a' && c <= 'z') cout << "Esta é uma letra minúscula.
Perceber:
Strings de entrada são tratadas como letras maiúsculas/minúsculas de saída, por exemplo:
Na minha opinião, esta declaração if...else...if na verdade não é if...else...if em essência, mas if...else if
Como o efeito da instrução if...else...if (como segue e o livro P40) o fluxograma desenhado não é o mesmo:
exemplo:
#include <iostream>
usando namespace std;
int main()
{ int a; cin >> a ; if (a==1) cout << 1<< endl; senão cout<< 2 << endl; if (a == 2) cout <<3 << endl; }
resultado:
Para verificar se a segunda instrução if é executada após a primeira instrução if, projetamos o seguinte programa:
um.
#include <iostream>
usando namespace std;
int main()
{ int a; cin >> a; if (a == 1) { cout << 1 << endl; a++;//a=a++(先运算,后自增) } else cout << 2 << endl; if (a == 2) cout << 3 << endl; }
dois.
#include <iostream>
usando namespace std;
int main()
{ int a; cin >> a; if (a == 1) { cout << 1 << endl; ++a; } senão cout << 2 << endl; if (a == 2) cout << 3 << endl; }
Os resultados são todos:
digitar | saída |
1 | 1 3 |
2 |
2 3 |
O mesmo resultado dos dois programas mostra que:
Quando a=1 é inserido, o programa primeiro executa a primeira instrução if, realiza o auto-incremento e, em seguida, executa a segunda instrução if
Ou seja: a segunda instrução if é executada após a execução da primeira instrução.
Isso prova nosso desenho de fluxograma anterior para este programa. Não está errado.
Portanto, para o significado expresso no livro, a sentença razoável correspondente deveria ser:
declaração if...else if
Aqui estamos discutindo a situação em que "{ }" não está incluído na função function em C++.
Para algumas regras em linguagem C e uso interno de "{ }", consulte: