java如何循环判断输入的时候为整数
System.out.print("请输入整数:");while(input.hasNextInt()==false){System.out.print("请重新输入整数...
System.out.print("请输入整数:");
while(input.hasNextInt() == false) {
System.out.print("请重新输入整数:");
a = input.nextInt()
}
奇怪了,不是错误,就是无限出现"请重新输入整数", 里面加个if判断也一样! 到底要怎么做啊,不要用正则。。。 展开
while(input.hasNextInt() == false) {
System.out.print("请重新输入整数:");
a = input.nextInt()
}
奇怪了,不是错误,就是无限出现"请重新输入整数", 里面加个if判断也一样! 到底要怎么做啊,不要用正则。。。 展开
5个回答
展开全部
import java.util.Scanner;
public class Jnm3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个数字:");
String s;
while((s = sc.nextLine()).matches("\\D*")){
System.out.println("你输入的不是数字");
}
System.out.println("你输入的是数字:" + s);
sc.close();
}
}
更多追问追答
追问
我需要用hasNextInt的方法来判断呀。。
追答
import java.util.Scanner;
public class Jnm3 {
public static void main(String[] args) {
boolean flag = false;
while (!flag) {
System.out.print("请输入一个数字:");
Scanner sc = new Scanner(System.in);
if (sc.hasNextInt()) {
flag = true;
System.out.println("你输入的是数字:" + sc.nextInt());
sc.close();
} else{
flag = false;
System.out.println("你输入的不是数字");
}
}
}
}
---------------------------------------------------------------------
我上一个代码犯傻了,比较丑陋,不停构造出扫描器
改进了一下,如果hasNextInt 是假的话,应该直接跳过就行了
import java.util.Scanner;
public class Jnm3 {
public static void main(String[] args) {
System.out.print("请输入一个数字:");
Scanner sc = new Scanner(System.in);
while (!sc.hasNextInt()) {
System.out.println("你输入的不是数字");
sc.next();
}
System.out.println("你输入的是数字:" + sc.nextInt());
sc.close();
}
}
展开全部
你写反了, 下面的代码没运行过,不过大致就这个意思了。
System.out.print("请输入整数:");
while (input.hasNext()) {
if(!input.hasNextInt())
{
System.out.print("请重新输入整数:");
}
}
追问
这样的话,如果是整数,进入循环但是什么事情都不发生
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
实验了好多遍,终于懂楼主的意思了,
package com.yr.util;
import java.util.Scanner;
public class A {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入整数:a");
String a;
while (true) {
a = input.next();
try {
Integer.parseInt(a);
System.out.println("你输入的是整数,循环结束");
break;
} catch (Exception e) {
System.out.println("你输入的不是整数,请再次输入");
}
}
}
}
package com.yr.util;
import java.util.Scanner;
public class A {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入整数:a");
String a;
while (true) {
a = input.next();
try {
Integer.parseInt(a);
System.out.println("你输入的是整数,循环结束");
break;
} catch (Exception e) {
System.out.println("你输入的不是整数,请再次输入");
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
亲,搞个正则表达式来判断吧,代码简约上档次
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法太多了,正常的我们不用,我们一般用变态的方法,如下。
//流氓的
try
{
Integer.parseInt(input);
//是整数
}
catch(NumberFormatException nfe)
{
//不是整数
}
//自虐的
for (char c : input.toCharArray())
{
if (!Character.isDigit(c))
{
//不是整数
}else
{
//是整数
}
}
//装逼的
if(input.matches("^\\d+$")){
//是整数
}
else
{
//不是整数
}
//流氓的
try
{
Integer.parseInt(input);
//是整数
}
catch(NumberFormatException nfe)
{
//不是整数
}
//自虐的
for (char c : input.toCharArray())
{
if (!Character.isDigit(c))
{
//不是整数
}else
{
//是整数
}
}
//装逼的
if(input.matches("^\\d+$")){
//是整数
}
else
{
//不是整数
}
追问
我需要用hasNextInt的方法来判断呀。。 有没有办法?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询