已有101人关注
为什么在do…while循环中放入int x=nextInt();方法和if语句后循环不会执行
发表在Java图书答疑 2020-06-15 《零基础学Java》第3章 流程控制
是否精华
版块置顶:

为什么在do…while循环中放入int x=nextInt();方法和if语句后循环不会执行呢?在视频课中验证两次输入密码是否相等怎么又会执行?
分享到:
精彩评论 8
根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2020-06-15
沙发

没看懂帮你在描述什么,你的结果完全符合你的代码,if语句也执行了,while循环也执行了,你的运行结果x使用小于100,所以一直在循环。

13759476771
学分:581 LV6
2020-06-15
板凳
这书上的拓展训练,题目是输入任意的自然数,然后从这个自然数开始相加,一直加到100。
做出这段代码后,当我输入1是,跳出的不是5050,而是“请输入任意的自然数”这段话。当我把
int x=nextInt();方法搬到do…while语句外后,在输入1时,跳出的就是5050
我怎么也看不出这段代码的问题,只有请教你们!
JAVA13533650592
学分:1685 LV9
2020-06-15
地板

你是什么意思?

stq20192019
学分:62 LV3
2020-06-15
4L

13759476771 发表于2020-06-15 09:19

这书上的拓展训练,题目是输入任意的自然数,然后从这个自然数开始相加,一直加到100。
做出这段代码后,当我输入1是,跳出的不是5050,而是“请输入任意的自然数”这段话。当我把
int x=nextInt();方法搬到do…while语句外后,在输入1时,跳出的就是5050
我怎么也看不出这段代码的问题,只有请教你们!

你上传的代码,do{ }大括号里面的语句,前两行从控制台得到一个自然数并赋值给x(你在这里输入的是1),然后开始执行if语句,因为1<=100满足条件,所以执行if语句{ }这个大括号中的内容,即sum+=x;和x++;此时do{ }括号里面的语句全部执行完毕,sum=1,x=2。执行while()圆括号当中的判断语句,因为x=2满足x<=100,程序继续循环回到do{ }语句中的第一行,让你继续输入自然数,你再输进去一个数,假设是5,此时x就换又变成了5,所以会出现现在的情况。。。。

如果把System.out.println(“请输入任意自然数”);和x=SC.nextLong();拿出来,这两行代码就不在循环体内,当你输入1后,do{ }大括号内会不断循环sum+=x;和x++;最后满足条件跳出循环,这才是你想要的结果

Hanoch
学分:672 LV6
2020-06-15
5L

你要用的话跳成5050的话,,,,把那个if改成while

if只会执行一次,while才会达到结果跳出

若可以请采纳

Hanoch
学分:672 LV6
2020-06-15
6L

嗯,还有int x=nextInt();在循环体内,就等于外层while,每循环一次就获取一次控制台;

如果你搬到外面就只会运行一次啦。

13759476771
学分:581 LV6
2020-06-16
7L
原来是这样哈,谢谢?
13759476771
学分:581 LV6
2020-06-16
8L

stq20192019 发表于2020-06-15 14:11

你上传的代码,do{ }大括号里面的语句,前两行从控制台得到一个自然数并赋值给x(你在这里输入的是1),然后开始执行if语句,因为1<=100满足条件,所以执行if语句{ }这个大括号中的内容,即sum+=x;和x++;此时do{ }括号里面的语句全部执行完毕,sum=1,x=2。执行while()圆括号当中的判断语句,因为x=2满足x<=100,程序继续循环回到do{ }语句中的第一行,让你继续输入自然数,你再输进去一个数,假设是5,此时x就换又变成了5,所以会出现现在的情况。。。。

如果把System.out.println(“请输入任意自然数”);和x=SC.nextLong();拿出来,这两行代码就不在循环体内,当你输入1后,do{ }大括号内会不断循环sum+=x;和x++;最后满足条件跳出循环,这才是你想要的结果

原来是这样哈,谢谢!
首页上一页 1 下一页尾页 8 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照