Reaprendizaje de notas de C ++ (cuatro) bucle y declaración de rama


Esta parte del contenido es muy similar al lenguaje C, y es una parte C ++ de uso común, por lo que puede leerla rápidamente.

1. Bucle

1.1 para bucle

A continuación se muestra un ejemplo del uso del bucle for para acceder a una cadena. Ingrese una cadena de caracteres y luego invierta la salida.

#include<iostream>
#include<string>
using namespace std;
int main()
{
    
    
    cout<<"Enter a word: ";
    string word;
    cin>>word;
    for(int i = word.size()- 1;i >=0; i--)
    {
    
    
        cout<<word[i];
    }
    cout<<"\nBye.\n";
    return 0;
}

1.2 operador de coma

El operador de coma es la prioridad más baja. El valor del operador de coma es el valor más a la derecha.

#include<iostream>
using namespace std;
int main()
{
    
    
   int i = 0;
   int j = 0;
   i = 1,2;//等同于(i = 1),2;
   j = (1,2);
   cout<<i<<endl;
   cout<<j<<endl;
   return 0;
}

Salida:
Inserte la descripción de la imagen aquí

1.3 Operadores relacionales

La precedencia de los operadores relacionales es menor que la de los operadores aritméticos.
x + 3> y-2; equivalente a (x + 3)> (y-2);

1.4 Comparación de cuerdas estilo C

El nombre de la matriz de una cadena de estilo C representa una dirección, por lo que las siguientes expresiones comparan direcciones.

char word[] = "mate";
if(word == "mate")//比较的是地址,他们不相等。

Las cadenas de estilo C usan strcmp () para comparar el tamaño. Debido a que las cadenas de estilo C se definen con un carácter nulo al final, las dos cadenas siguientes son iguales.

char big[80] = "hello";
char little[10] = "hello";
  • Si str1 == str2; entonces strcmp (str1, str2) == 0;
  • Si str1> str2; entonces strcmp (str1, str2)> 0;
  • Si str1 <str2; entonces strcmp (str1, str2) <0;

1.5 Comparación de cadenas

Las cadenas se pueden comparar directamente

#include<iostream>
#include<string>
using namespace std;
int main()
{
    
    
   string word = "?ate";
   for(char ch = 'a';word != "mate";ch++)
   {
    
    
       cout<<word<<endl;
       word[0] = ch;
   }
   cout<<word<<endl;
}

Salida:
Inserte la descripción de la imagen aquí

2. Bucle while y do while

Estos dos bucles tienen las mismas funciones que para, por lo que no los presentaré.

2.1 typedef 和 definir

Ambos pueden tener un alias, pero definir es solo un reemplazo y, a veces, se producen resultados inesperados al definir tipos. Typedef no lo hará.

#define INT_point int*
INT_point pa,pb;//pa是指针,pb是普通整形变量。

3. Bucle for basado en rango (C ++ 11)

C ++ 11 agregó un nuevo bucle: un bucle for basado en rangos. Esto simplifica una tarea cíclica común: realizar la misma operación en cada elemento de una matriz (o clase de contenedor, como vector y matriz), por ejemplo.

#include<iostream>
using namespace std;
int main()
{
    
    
   double prices[5] = {
    
    2.3, 4.3,6.4,10.3, 5.9};
   for(double p:prices)
   {
    
    
       cout<<p<<endl;
   }
   //或者直接应auto
   cout<<"使用auto:"<<endl;
   for(auto p:prices)
   {
    
    
       cout<<p<<endl;
   }
}

Si necesita modificar el valor de un elemento de matriz, debe usar & p

#include<iostream>
using namespace std;
int main()
{
    
    
    double prices[5] = {
    
    2.3, 4.3,6.4,10.3, 5.9};
    for(auto &p:prices)
    {
    
    
        p = p * 2;
    }
    for(double p:prices)
    {
    
    
        cout<<p<<endl;
    }
}

4. Entrada de texto y bucle

4.1 Entrada cin original

Este tipo de entrada no leerá espacios, tabulaciones ni nuevas líneas. El siguiente ejemplo no terminará hasta que se lea '#'.

#include <iostream>
using namespace std;
int main()
{
    
    
    char ch;
    int count = 0;
    cout<<"Enter characters;enter # quit:\n";
    cin>>ch;
    while(ch != '#')
    {
    
    
        cout<<ch;
        ++count;
        cin>>ch;
    }
    cout<<endl<<count<<" characters read\n";
    return 0;
}

Salida

Enter characters;enter # quit:
da jia hao !###ldjkfa
dajiahao!
9 characters read

4.2 cin.get (char) que puede leer espacios

Si necesita leer caracteres como espacios, puede usar cin.get (char). Modifique el programa de muestra de la siguiente manera:

#include <iostream>
using namespace std;
int main()
{
    
    
    char ch;
    int count = 0;
    cout<<"Enter characters;enter # quit:\n";
    cin.get(ch);
    while(ch != '#')
    {
    
    
        cout<<ch;
        ++count;
        cin.get(ch);
    }
    cout<<endl<<count<<" characters read\n";
    return 0;
}

Salida

Enter characters;enter # quit:
da jia hao !###lll
da jia hao !
12 characters read

5. Operadores lógicos

Operadores lógicos && || Su prioridad es menor que los operadores relacionales, pero! Es mayor que todos los operadores relacionales y operadores aritméticos. y entonces:

x >5 && x < 10;
//等同于
(x > 5 && (x < 10))

Si es fácil de confundir, ¡simplemente use ()!

Los operadores lógicos también se pueden representar mediante y, o, y no en el programa , y no se requieren archivos de encabezado en C ++. En lenguaje C, debe incluir el archivo de encabezado iso646.h.

6. Biblioteca de funciones de caracteres cctype

C ++ hereda un paquete de funciones muy conveniente relacionado con los caracteres del lenguaje C, y su archivo de encabezado está en cctype (ctype.h en el estilo antiguo).
Inserte la descripción de la imagen aquí

7. declaración de cambio

El juicio de switch solo puede manejar números enteros, caracteres o enumeraciones. Utilice la enumeración como ejemplo:

#include<iostream>
using namespace std;
int main()
{
    
    
    enum {
    
    red, orange, yellow, green, blue, violet,indigo};
    cout <<"Enter color code (0 - 6): ";
    int code;
    cin >> code;
    while(code >= red && code <= indigo)
    {
    
    
        switch(code)
        {
    
    
            case red : cout<<"red\n";break;
            case orange : cout<<"orange\n";break;
            case yellow : cout<<"yellow\n";break;
            case green : cout<<"green\n";break;
            case blue : cout<<"blue\n";break;
            case violet : cout<<"violet\n";break;
            case indigo : cout<<"indigo\n";break;
        }
        cout <<"Enter color code (0 - 6): ";
        cin >>code;
    }
    cout << "Bye\n";
    return 0;
}

¡Estudiemos juntos cuando la entrada y la salida están en el Capítulo 17!


Resumen Índice
Anterior: (3) Tipo de compuesto
Siguiente: (5) Uso de funciones


Referencia del artículo: "C ++ Primer Plus Sixth Edition"

Supongo que te gusta

Origin blog.csdn.net/QLeelq/article/details/112336576
Recomendado
Clasificación