Fundamentos

Operadores para cadenas, asignación e incremento

Básicos Definiciones Fundamentos

Vistos los sencillos operadores aritméticos, vamos ahora a ver los operadores para cadenas además de reseñar los de asignación e incremento/decremento.

También podéis ver el listado de artículos que llevamos y los que están programados en el índice de contenidos.

Operadores para cadenas

Principalmente encontramos el operador de concatenación en cuanto a operadores para cadenas. Este operador se utiliza para colocar una cadena detrás de otra. Podríamos decir que es como “sumar” las cadenas y, de hecho, en algunos lenguajes de programación se utiliza el signo de la suma para ello.

Sin embargo, no vamos a ver este operador en pseudocódigo debido a que no aparece como tal en muchos lenguajes de programación y a que su representación varía entre ellos. Por ejemplo, en PHP y como vimos en este artículo el operador de concatenación de cadenas es un sencillo punto (.) entre las cadenas.

En unos cuantos otros lenguajes, como puede ser Java o JavaScript, el operador para concatenar cadenas es el signo +, que puede ser más intuitivo pero que puede darnos algún que otro problemilla si no sabemos utilizarlo bien. Veamos este ejemplo para verlo.

Ejemplo 1
"15 y 20 es igual a " + 15 + 20
Muestra por pantalla 15 y 20 es igual a 1520

Ejemplo 2
"15 y 20 es igual a " + (15 + 20)
Muestra por pantalla 15 y 20 es igual a 35

Simplemente con añadir esos paréntesis ya ha cambiado totalmente el valor de nuestra cadena mostrada por pantalla. En el primer ejemplo a la cadena se le ha concatenado un 15 y luego un 20. En el segundo ejemplo el paréntesis ha forzado a que primero se haga la operación interior y, al ser dos números, se ha utilizado el operador aritmético suma. Obtenida esta suma, el operador de concatenación + fuera del paréntesis añade ese 35 a la cadena.

Por último, hay lenguajes de programación, como C, donde no existe un operador para concatenar cadenas y deberemos recurrir a otros métodos para realizarlas.

Operador de asignación

El operador de asignación lo vimos cuando hablamos de cómo asignar variables y vimos sus ejemplos en PHP. Pero vamos a introducir aquí operadores combinados, pues se suelen utilizar en la asignación.

La asignación utiliza, como ya hemos visto en anteriores artículos, el signo = y guarda el valor de la expresión de la derecha en la variable de la izquierda. Hay muchos lenguajes en donde podemos hacer asignaciones masivas, como por ejemplo lo siguiente:

VARIABLE_1 = VARIABLE_2 = VARIABLE_3 = 5

En este ejemplo las tres variables tendrán el valor 5.

Pero también tenemos operadores combinados, que combinan operadores como los matemáticos y también los operadores para cadenas que hemos visto para concatenar combinándose con el signo igual. Así, podemos tener +=, *=, .= (en PHP) como mostramos en este ejemplo para que se vea mejor.

NUMERO_1 = 5
NUMERO_1 += 3
En este ejemplo la variable NUMERO_1 acaba con valor 8

NUMERO_2 = 6
NUMERO_2 *= 3
En este ejemplo la variable NUMERO_2 acaba con valor 18

TEXTO = 'Hola '
TEXTO .= 'mundo'
En este ejemplo la variable TEXTO acaba con valor 'Hola mundo'

Si somos avispados veremos enseguida qué hace esta combinación de operadores. En el caso de NUMERO_1 vemos que empieza valiendo 5 y, luego, hemos visto que acaba con valor 8, por lo que se le ha sumado ese 3. Es decir, el operador combinado += ha cogido la variable de la izquierda, le ha sumado el valor de la derecha y ha guardado el resultado de nuevo en la variable de la izquierda. Es como si hubiéramos puesto NUMERO_1 = NUMERO_1 + 3 pero, con el operador combinado, nos ahorramos la escritura dos veces de la misma variable.

En los otros ejemplos ocurre igual. NUMERO_2 empieza siendo 6 y luego se multiplica este mismo valor por 3. Y la variable TEXTO empieza siendo ‘Hola ‘ para luego indicarle que concatene esta cadena y la cadena ‘mundo’. Es una forma útil de ahorrarnos escritura de variables si vamos a machacar el valor de la propia variable (obviamente si queremos tener guardado el valor inicial nunca debemos hacer ésto, pues lo perderíamos).

Operador de incremento/decremento

Estos operadores sólo suelen afectar a números y a cadenas, e implican incrementar o decrementar en uno su valor. Son sencillos, pero según dónde se utilicen debemos tener cuidado con ellos. Se expresan con los símbolos ++ para incrementar y los símbolos — para decrementar, y tienen en cuenta su posición.

Es decir, dependiendo de si se colocan antes o después de nuestra variable, ocurrirá una cosa u otra. Si tenemos ++VALOR se incrementará en uno el valor y luego se devolverá el propio valor. Si tenemos VALOR++ se devolverá primero el valor y luego se incrementará en uno. Ésto, que parece complejo y suele ser lioso, se utiliza en algunas ocasiones dependiendo de la habilidad del programador. Veamos un ejemplo sin pretender detenernos mucho en ello.

VALOR = 3
Si mostramos el valor de VALOR++ obtendremos un 3 por pantalla y VALOR acabará teniendo un 4
Si mostramos el valor de ++VALOR obtendremos un 4 por pantalla, pues previamente se ha incrementado la variable VALOR y luego se ha mostrado

Atención
Hay que tener cuidado con el incremento de cadenas, pues no entra en nuestra lógica incrementar la cadena ‘Hola mundo’, por ejemplo. Sí podemos vernos tentados de incrementar una letra, por ejemplo incrementar la letra a y que sea b, pero no os lo aconsejo pues dependiendo del lenguaje puede que incrementar la z haga que el siguiente valor sea distinto en uno u otro lenguaje.

Vistos los operadores más básicos

Después de repasar los operadores aritméticos y los operadores para cadenas junto a los asignación e incremento/decremento, hemos visto los operadores más básicos para nuestros programas.

En el próximo artículo veremos los operadores lógicos y de comparación para finalizar esta introducción básica a los operadores. Por tanto, otros operadores como los de bit a bit, control de errores o de tipo no vamos a verlos inicialmente, pues son menos utilizados para nuestros propósitos de iniciarnos poco a poco. Pero antes, un nuevo reto para practicar.

Deja una respuesta