Если результаты получены из запроса mysql, более эффективно ограничить непосредственно результат mysql:
select [...] from [...] order by [...] limit 0,10
, где 10 - максимальное количество строк, которые вы хотите
->
не оператор. Фактически это два отдельных оператора, -
и >
.
Код условия уменьшает x
, возвращая x
' s исходное (не уменьшенное) значение, а затем сравнивает исходное значение с 0
с помощью оператора >
.
Чтобы лучше понять, оператор может быть записан следующим образом:
while( (x--) > 0 )
(x --> 0)
средства (x-- > 0)
(x -->)
output -: 9 8 7 6 5 4 3 2 1 0
(-- x > 0)
, Это среднее (--x > 0)
output -: 9 8 7 6 5 4 3 2 1
(--\
\
x > 0)
output -: 9 8 7 6 5 4 3 2 1
(\
\
x --> 0)
output -: 9 8 7 6 5 4 3 2 1 0
(\
\
x --> 0
\
\
)
output -: 9 8 7 6 5 4 3 2 1 0
(
x
-->
0
)
output -: 9 8 7 6 5 4 3 2 1 0
аналогично, можно попробовать партию методов для выполнения этой команды успешно
В любом случае, у нас теперь есть оператор перехода. «->»
легко запомнить как направление, а «пока x стремится к нулю» - прямое значение.
Кроме того,
Это
#include <stdio.h>
int main(void){
int x = 10;
while( x-- > 0 ){ // x goes to 0
printf("%d ", x);
}
return 0;
}
Просто пространство заставляет вещи выглядеть смешно, -
уменьшает, а >
сравнивает.
Это эквивалентно
while (x-- > 0)
x -
(пост-декремент) эквивалентно x = x-1
, поэтому код преобразуется в:
while(x > 0) {
x = x-1;
// logic
}
Это очень сложный оператор, поэтому даже ISO / IEC JTC1 (Объединенный технический комитет 1) поместил его описание в двух разных частях стандарта C ++.
Шутка. помимо этого, это два разных оператора: -
и >
, описанные соответственно в §5.2.6 / 2 и §5.9 стандарта C ++ 03.
Использование ->
имеет историческое значение. Уменьшение было (и остается в некоторых случаях) быстрее, чем увеличение на архитектуре x86. Использование ->
предполагает, что x
будет равно 0
, и обращается к тем, кто имеет математический опыт.
Этот код сначала сравнивает x и 0, а затем уменьшает x. (Также сказано в первом ответе: вы уменьшаете x, а затем сравниваете x и 0 с помощью оператора >
.) См. Вывод этого кода:
9 8 7 6 5 4 3 2 1 0
Теперь мы сначала сравниваем, а затем уменьшаем увидев на выходе 0.
Если мы хотим сначала уменьшить, а затем сравнить, используйте этот код:
#include <stdio.h>
int main(void)
{
int x = 10;
while( --x> 0 ) // x goes to 0
{
printf("%d ", x);
}
return 0;
}
Этот результат:
9 8 7 6 5 4 3 2 1
Между --
и >
не хватает места. x
уменьшается после проверки условия x>0 ?
.
Это в точности то же самое, что
while (x--)
{
printf("%d ", x);
}
для неотрицательных чисел
.Мой компилятор распечатает 9876543210, когда я запущу этот код.
#include <iostream>
int main()
{
int x = 10;
while( x --> 0 ) // x goes to 0
{
std::cout << x;
}
}
Как и ожидалось. На самом деле while( x-- > 0 )
означает while( x > 0)
. Пост декретов x--
x
.
while( x > 0 )
{
x--;
std::cout << x;
}
- это другой способ написания одного и того же.
Приятно, что оригинал выглядит как "в то время как х переходит на 0".
-
- оператор декремента , а >
- оператор больше, чем .
Два оператора применяются как один, например ->
.
В одной книге, которую я читал (не помню точно, в какой), говорилось: Компиляторы пытаются разобрать выражения до самого большого токена, используя правило "слева направо".
В данном случае выражение:
x-->0
разбирается до наибольшей лексемы:
token 1: x
token 2: --
token 3: >
token 4: 0
conclude: x-- > 0
То же правило применяется к этому выражению:
a-----b
После разбора:
token 1: a
token 2: --
token 3: --
token 4: -
token 5: b
conclude: (a--)-- - b
Надеюсь, это поможет понять сложное выражение ^^
Совершенно чудаковатый, но я буду использовать это:
#define as ;while
int main(int argc, char* argv[])
{
int n = atoi(argv[1]);
do printf("n is %d\n", n) as ( n --> 0);
return 0;
}