与while对立的还有一种do while循环,听起来似乎与while相差不大,实际到底是怎么运行的呢?现在来看看吧。
do{}while循环会首先执行一次,即do一次出循环体时判断while条件是否为真,若为真则跳到do继续循环;否则退出循环,执行下一行代码;
例: 设计一个计算“ 一元二次方程” 的程序。 运行的结果是让你输入三个数, 然后计算结果, 完了之后还会问你:“ 您想继续吗?” 想继续的话可以再输入三个数, 不想继续, 输入“ N” 就退出。 代码如下:
# include < stdio.h > #include < math.h > int main(void) { float a, b, c; //定义一元二次方程的三个系数 char k; //用于后面判断是否要继续输入 double delta, x1, x2; /*delta用来存储b*b - 4*a*c的值;x1和x2的值分别为方程的解*/ do { //输入一元二次方程的三个系数a、b、c printf("请输入一元二次方程的三个系数, 用回车分隔:\n"); printf("a = "); scanf("%f", & a); while (getchar() != '\n'); /*容错处理, scanf后面都加上这一句, 作用是清空输入缓冲区, 以防用户乱输入*/ printf("b = "); scanf("%f", & b); while (getchar() != '\n'); printf("c = "); scanf("%f", & c); while (getchar() != '\n'); delta = b * b - 4 * a * c; //判断delta的值是大于零, 等于零, 还是小于零 if (delta > 0) { x1 = (-b + sqrt(delta)) / (2 * a); x2 = (-b - sqrt(delta)) / (2 * a); printf("有两个解, x1 = %f, x2 = %f\n", x1, x2); } else if (0 == delta) { x1 = x2 = (-b) / (2 * a); printf("有唯一解, x1 = x2 = %f\n", x1); } else { printf("无实数解\n"); } //询问是否想继续输入 printf("您想继续吗, Y想, N不想:"); scanf("%c", & k); //输入Y或者N, 表示“想”或“不想” while (getchar() != '\n'); } while ('Y' == k); return 0; }
以上就是本篇文章的所有内容,关于java中循环相信小伙伴们已经有了深刻的理解,如果还想了解更多java常见问题及解决方法就来关注我们吧。
推荐阅读: