fuze11 发表于 2020-5-13 22:12:56

求大神看看

……
i = 0;

while (i < 100)
{
      if (i % 2)
      {
                continue;
      }

      i++;
}
……    假如我执行了continue后他会跳过哪些部分

永恒的蓝色梦想 发表于 2020-5-13 22:15:31

跳过 i++

fuze11 发表于 2020-5-13 22:24:44

double result = 1.0;// result == 1.0
result += 2.6;// result == 3.6
result ++;// result == 4.6
result * 5;// result == 4.6,虽然乘以 5,但结果并没有保存起来
result = (int)(result + 0.5)// result == 5

fuze11 发表于 2020-5-13 22:25:18

大神我还有几个问题

fuze11 发表于 2020-5-13 22:27:49

fuze11 发表于 2020-5-13 22:25
大神我还有几个问题

第三个不是直接加一吗
第四个为什么没有保存呢、
第五个我是这样想的int(1+0.5)=1

liuzhengyuan 发表于 2020-5-13 22:28:30

① 它会跳过之后循环的内柔直接进行下次循环
② 没看懂{:10_262:}

fuze11 发表于 2020-5-13 22:33:06

liuzhengyuan 发表于 2020-5-13 22:28
① 它会跳过之后循环的内柔直接进行下次循环
② 没看懂

double result = 1.0;// result == 1.0
result += 2.6;// result == 3.6
3result ++;// result == 4.6
4result * 5;// result == 4.6,虽然乘以 5,但结果并没有保存起来
5result = (int)(result + 0.5)// result == 5

就是3不是自加吗
4就是注释是什么意思
5我认为是(int)(1+0.5)=1

永恒的蓝色梦想 发表于 2020-5-13 22:35:48

fuze11 发表于 2020-5-13 22:25
大神我还有几个问题

自问自答???

悠悠2264 发表于 2020-5-13 22:45:49

一楼:
continue跳过的是此轮循环(循环后面的代码都不执行),执行下一轮循环。
但你这么写会是死循环的,因为你不符合条件跳出循环时每次i都没有+1。当i=1时,1/2余1,1表示true,会执行if语句,但continue时到下一轮i还是2,没有变化,因此会是死循环。
if里加一句:i++;
再continue即可

3.result++表示result+1
4.result = result*5;才可以保存起来,除了自加自减都要写成这样才能保存
5.这样强转是直接取整的,如13.8会变为13
如果想按其他方法转为整数,看代码:
#include<stdio.h>
#include<math.h>
int main(){
    float f = 12.5;
    int a = (int)f;//强制转换 直接取整
    int b = round(f);//四舍五入取百整
    int c = ceil(f);//向上取整
    int d = floor(f);//向下取整

    printf("a=%d\nb=%d\nc=%d\nd=%d\n", a, b, c, d);
    getchar();
    return 0;
}

fuze11 发表于 2020-5-14 09:00:09

谢谢了
页: [1]
查看完整版本: 求大神看看