История изменений
Исправление www_linux_org_ru, (текущая версия) :
Или:
match n { 0...99 => println("1"), 100...199 => println("2"), 200...299 => println("3"), _ => println("4"), }
с полпинка:
int nn=n/100;
putchar( 0<nn && nn<4 ? '0'+nn : '4' );
putchar( '\n' );
или если бы ты все же догадался заменить 1 на one,... то:
switch(n/100) {
case 0: printf("less than one hundred\n"); break;
case 1: printf("less than two hundreds\n"); break;
case 2: printf("less than three hundreds\n"); break;
default: printf("i do not know\n"); break;
}
так что переделывай свой пример (т.к. свитч в плюсах все же барахло)
кстати: как там в расте с оптимизацией match? сможет он из твоего примера сгенерить мой c putchar ? (сам по себе putchar возможно не эффективен, его вставлять вместо printf не обязательно — речь шла об оптимизации n/100 и в том же духе)
А. нет никаких оптимизаций?
В. не глядя жри что дает компилятор, и радуйся?
С. есть что-то типа EXPLAIN в SQL?
D. свои оптимизации для match?
Исправление www_linux_org_ru, :
Или:
match n { 0...99 => println("1"), 100...199 => println("2"), 200...299 => println("3"), _ => println("4"), }
с полпинка:
int nn=n/100;
putchar( 0<nn && nn<4 ? '0'+nn : '4' );
putchar( '\n' );
или если бы ты все же догадался заменить 1 на one,... то:
switch(n/100) {
case 0: printf("less than one hundred\n"); break;
case 1: printf("less than two hundreds\n"); break;
case 2: printf("less than three hundreds\n"); break;
default: printf("i do not know\n"); break;
}
так что переделывай свой пример (т.к. свитч в плюсах все же барахло)
кстати: как там в расте с оптимизацией match? сможет он из твоего примера сгенерить мой c putchar ? (сам по себе putchar возможно не эффективен, его вставлять вместо printf не обязательно — речь шла об оптимизации n/100 и в том же духе)
А. нет никаких оптимизаций?
В. не глядя жри что дает компилятор, и радуйся?
С. есть что-то типа EXPLAIN в SQL?
D. свои оптимизации для match?
Исходная версия www_linux_org_ru, :
Или:
match n { 0...99 => println("1"), 100...199 => println("2"), 200...299 => println("3"), _ => println("4"), }
с полпинка:
int nn=n/100;
putchar( 0<nn && nn<4 ? '0'+nn : '4' );
putchar( '\n' );
или если бы ты все же догадался заменить 1 на one,... то:
switch(n/100) {
case 0: printf("less than one hundred\n"); break;
case 1: printf("less than two hundreds\n"); break;
case 2: printf("less than three hundreds\n"); break;
default: printf("i do not know\n"); break;
}
так что переделывай свой пример (т.к. свитч в плюсах все же барахло)
кстати: как там в расте с оптимизацией match? сможет он из твоего примера сгенерить мой c putchar?
А. нет никаких оптимизаций?
В. не глядя жри что дает компилятор, и радуйся?
С. есть что-то типа EXPLAIN в SQL?
D. свои оптимизации для match?