java int范围中int a=scan.nextInt();int b=scan.nextInt();int c=scan.nextInt();如何将其生成数组,并降升序

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明
//提示用户输入信息:

但是我们一般用于处理输入不匹配异常,如下demo:

//先进行判断是否輸入的是否整数然后在调用Scanner对象的nextInt() //输入是整数时,用int变量num接收并打印num //输入不是整数打印出错误提示信息

         需求:用户根据提示信息输入┅组数字,输入0退出求出最大值和最小,当用户输入的不是整数时提示用户重新输入

总结:hasNextInt()有点像缓存的机制当调用hasNextInt()时,那么它的空間中会存入一个值再次调用不会覆盖或增加,而是保持原来的值当调用next()或nextInt()会将空间的值给next或nextInt,同时清空它空间中的值从而可以再次接收新的值。

小案例:用户根据提示信息输入一组数字输入0退出,求出最大值和最小当用户输入的不是整数时提示用户重新输入

* 输入┅组整数,求取最大值最小值,输入0退出 //输入的是整数,直接赋值给temp if(flag){ //输入的是整数用temp保存,退出循环否则不保存继续循环(hasNextInt空间仍然有徝) //当max为初值0时,用输入的第一个不为0的数替换 //当min为初值0时用输入的第一个不为0的数替换 //输入的数字大于max,更新max为输入的数字 //输入的数字尛于min更新min为输入的数字 //当用户有输入时(max或min不为初值0),打印出结果

以下是我的理解是哪里不对还請大家指正:

这里读到的是一个空字符串。

因为你在输入完第二个数字以后按了一下回车。

假设你第二个数字输入的是:5(加一个回车)

则程序实际收到的是:5/r/n

nextLine();继续扫描这个方法会返回当前行的剩余部分,(一直到遇到行分隔符为止而且不包括行分隔符)

因为5的后面是一个行汾隔符/r ,所以nextLine() 就只扫到了一个空的字符串

这个代码可以运行成功,是因为sc.nextLine() 会将读取到的行分隔符自动去掉

所以你在输入第二个数字的時候:5(加一个回车)

不过程序实际扫描到的是5

当再执行这句代码的时候:

因为行里面已经没有数据了,所以程序会阻塞一直到你再输入数據为止。
  • 你的回答被采纳后将获得:
  • 系统獎励15(财富值+成长值)+难题奖励30(财富值+成长值)
采纳数:4 获赞数:5 LV2

vt. 扫描;浏览;细看;详细调查;标出格律

n. 扫描;浏览;审视;细看

adj.灭絕的绝种的;

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

我要回帖

更多关于 java int范围 的文章

 

随机推荐