Sj中国智造 发表于 2017-10-12 20:27:25

二分求解的一个问题

用二分法解2x^3-4x^2+3x-6=0.
我用while语句写的对了,为什么用do while语句写错了,到底哪里错了,求大神解。

BngThea 发表于 2017-10-12 20:27:26

用while循环的时候,只有if不成立才执行
i = (max + min) / 2.0;

而do while循环中始终执行该语句,中间某次有可能跳出正确的范围

Sj中国智造 发表于 2017-10-13 12:24:41

BngThea 发表于 2017-10-13 09:42
用while循环的时候,只有if不成立才执行




不是啊,while循环里也是会一直执行max+min/2.0

BngThea 发表于 2017-10-13 12:34:54

Sj中国智造 发表于 2017-10-13 12:24
不是啊,while循环里也是会一直执行max+min/2.0


当if条件满足的时候,continue语句会跳过本次循环的后续部分,直接进行下一次循环,也就是会跳过赋中值

Sj中国智造 发表于 2017-10-14 07:59:48

BngThea 发表于 2017-10-13 12:34
当if条件满足的时候,continue语句会跳过本次循环的后续部分,直接进行下一次循环,也就是会跳过赋中值

i=max+min/2.0 有几个,况且while语句的那串代码是测试正确的,dowhile有问题


BngThea 发表于 2017-10-14 12:16:40

Sj中国智造 发表于 2017-10-14 07:59
i=max+min/2.0 有几个,况且while语句的那串代码是测试正确的,dowhile有问题

我告诉你的将是你的while循环与do while循环的区别,因为这种区别(无论什么情况都会更新中值)导致的do while有时候会出错

Sj中国智造 发表于 2017-10-16 12:26:53

BngThea 发表于 2017-10-14 12:16
我告诉你的将是你的while循环与do while循环的区别,因为这种区别(无论什么情况都会更新中值)导致的do...

还是不懂啊,请说的详细些
页: [1]
查看完整版本: 二分求解的一个问题