循环判断的时候写if好还是continue好?

学术版

@[zhanghengrui](/user/110634) 以前曾经waiting了五分钟。。。
by zhaowangji @ 2020-02-24 22:14:11


@[zhanghengrui](/user/110634) 那个jmp,jne是什么意思?
by zhaowangji @ 2020-02-24 22:14:39


神奇的是我测出来反而if快。。。
by zhaowangji @ 2020-02-24 22:16:48


```cpp #include<bits/stdc++.h> #include<ctime> using namespace std; clock_t t1,t2; long long ans; int main(){ t1=clock(); for(int i=1;i<=1e9;++i){ if(i%7==0)continue; else ++ans; } t2=clock(); cout<<(double)(t2-t1)/1000<<endl; t1=clock(); for(int i=1;i<=1e9;++i){ if(i%7!=0){ ++ans; } } t2=clock(); cout<<(double)(t2-t1)/1000<<endl; return 0; } ```
by zhaowangji @ 2020-02-24 22:17:12


@[zhaowangji](/user/164840) 不会有多少差别的吧 评测鸡波动见识过就知道了咩
by hater @ 2020-02-24 22:17:37


@[hater](/user/100114) 这波动程度得是多厉害......
by zhaowangji @ 2020-02-24 22:18:25


@[zhaowangji](/user/164840) 实测 `continue` 快一点 ![](https://s2.ax1x.com/2020/02/24/3J9Vq1.png) 不过其实还是不太严谨,毕竟 `==` 和 `!=` 效率不一定一样
by zhanghengrui @ 2020-02-24 23:16:32


@[zhanghengrui](/user/110634) 为什么我测if快。。。 你这编译器是怎么搞的?
by zhaowangji @ 2020-02-24 23:19:30


@[zhaowangji](/user/164840) Arch Linux,gcc 9.2.1 应该是官方的
by zhanghengrui @ 2020-02-24 23:20:08


@[zhaowangji](/user/164840) `gcc -v` 输出 ```plain 使用内建 specs。 COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.1/lto-wrapper 目标:x86_64-pc-linux-gnu 配置为:/build/gcc/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-pkgversion='Arch Linux 9.2.1+20200130-2' --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d --enable-shared --enable-threads=posix --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --enable-multilib --disable-werror --enable-checking=release --enable-default-pie --enable-default-ssp --enable-cet=auto gdc_include_dir=/usr/include/dlang/gdc 线程模型:posix gcc 版本 9.2.1 20200130 (Arch Linux 9.2.1+20200130-2) ```
by zhanghengrui @ 2020-02-24 23:22:02


上一页 | 下一页