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