Dos puntos (:) en C
Hola. ¿Alguien me puede decir para qué sirven los dos puntos (:) y algo sobre su uso? También me interesaría alguna referencia de web o libro que hable sobre ello. Muchas gracias.
También los dos puntos se usan como indicación de una "label" en una sentencia "goto" (Sí, la denodada goto, también en C++!). Aunque tenga tan mala prensa, suele ser muy útil en algunos casos, por ejemplo, cuando es necesario salir rápidamente de varios ciclos anidados.
Ésta situación es una de las pocas donde se justifica:
for(int i=0; i<imax; ++i) {
for(int j=0; j<jmax; ++j) {
for(k=... ...
if(ciertaCondición) goto salida;
... ... ... ..
}}}}}}}}}} // muchos ciclos anidados.
// siertaCondición no se cumplió nunca
// más código...
return;
salida: // dos puntos después de la label" salida"
// cierta condición sí se cumplió:
hacerAlgo();
return;
// Alejandro
Ésta situación es una de las pocas donde se justifica:
for(int i=0; i<imax; ++i) {
for(int j=0; j<jmax; ++j) {
for(k=... ...
if(ciertaCondición) goto salida;
... ... ... ..
}}}}}}}}}} // muchos ciclos anidados.
// siertaCondición no se cumplió nunca
// más código...
return;
salida: // dos puntos después de la label" salida"
// cierta condición sí se cumplió:
hacerAlgo();
return;
// Alejandro
Otro uso para los dos puntitos, la formar abreviada de if-else :
z = (a > b) ? a : b; // z recibe el maximo entre a y b
z = (a > b) ? a : b; // z recibe el maximo entre a y b
No se si me acuerdo de todos, pero los dos puntos
(:) cumplen diferente papeles en C.
[1] - en la orden switch, para ligar los diferentes casos.
Por ejemplo
switch(x)
{
}
(:) cumplen diferente papeles en C.
[1] - en la orden switch, para ligar los diferentes casos.
Por ejemplo
switch(x)
{
}
continuo con switch
switch(x)
{
case 1 : .....
break;
case 2 : ....
break;
default :......
}
[2] - para las etiquetas, "labels"
goto error;
.....
....
....
error : ........
[3] - cuatros puntitos (::) para asignar variables o funciones a una estructura o clase.
class X
{
int F(int,int); // declaracion de la funcion
}
int X::F(int a,int b) // definicion
{
}
[4] - dentro de clase o estructuras para delimitar las declaraciones
public:
private:
[5] - supongo que habran mas usos de los dos puntitos. En lo que respecta a libros, el unico que puedo recomnedarte no se si esta en castellano :
Teach Yourself Object Oriented Programming with
Turbo C++ in 21 days, by Greg Perry, editorial Sams
switch(x)
{
case 1 : .....
break;
case 2 : ....
break;
default :......
}
[2] - para las etiquetas, "labels"
goto error;
.....
....
....
error : ........
[3] - cuatros puntitos (::) para asignar variables o funciones a una estructura o clase.
class X
{
int F(int,int); // declaracion de la funcion
}
int X::F(int a,int b) // definicion
{
}
[4] - dentro de clase o estructuras para delimitar las declaraciones
public:
private:
[5] - supongo que habran mas usos de los dos puntitos. En lo que respecta a libros, el unico que puedo recomnedarte no se si esta en castellano :
Teach Yourself Object Oriented Programming with
Turbo C++ in 21 days, by Greg Perry, editorial Sams
