java 利用Scanner类的nextInt()方法从控制台读入一个整数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 利用Scanner类的nextInt()方法从控制台读入一个整数相关的知识,希望对你有一定的参考价值。

java 利用Scanner类的nextInt()方法从控制台读入一个整数,然后输出该整数。如果从控制台输入的不是一个整数,则提示再次输入,直到读取一个整数。

下面的就是我写的程序,是错的。。请问怎么改?或者写出更好的程序也可。

import java.util.Scanner;

class Test0901
public static void main(String args[])
int a = 1;
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
for(int i = 1; i > 0; i++)
try
int n = sc.nextInt();
System.out.println(n);
catch(java.util.InputMismatchException e)
System.out.println("输入的不是整数,请再次输入:");
a = 2;

if(a == 1) break;


可以通过”Scanner“函数 直接输入参数的形式,来实现输入语句,举例:
import java.util.Scanner;
public class Test
public static void main(String[] args)
Scanner input=new Scanner(System.in);
System.out.println("请输入一个数值:");
int length=input.nextInt();//输入一个正整数
System.out.println("输入的数字是:"+length);

备注:Scanner函数就是用来进行语句输入的,上面举例的是数值型,也可以用以下语句“String length=input.next()”,输入的就是字符串等。
参考技术A import java.util.Scanner;

public class AnnotationTest
public static void main(String args[])
boolean b = true;
int n = 0;
System.out.println("请输入一个整数:");
while(b)
Scanner s = new Scanner(System.in);
try
n = s.nextInt();
b = false;
System.out.println(n);
catch(java.util.InputMismatchException e)
System.out.println("输入的不是整数,请再次输入:");
b = true;




运行结果:
请输入一个整数:
/
输入的不是整数,请再次输入:
*
输入的不是整数,请再次输入:
5
5本回答被提问者采纳

Java 实验一

一学习总结
1.scanner类的基本实现基本输入的方法:首先需要导入Scanner所在的包,java.util.Scanner。
可以使用不同的next方法将输入的文本转换成不同类型的值,如:nextInt,nextBoolean。
还要构造scanner对象,并与system.in关联,如:Scanner input=new Scanner(System.in);
调用scanner的各种方法完成输入操作,如:int num=input.nextInt();

import java.util.Scanner;

public class Test {
    public static void main(String args[]) { 
        String gchar= new String();
        Scanner input = new Scanner(System.in);
        System.out.println("nextLine方式接收:");
        gchar=input.nextLine();
        System.out.println(gchar);
    }     
}
  1. Random类
    实现的随机算法是伪随机,也就是有规则的随机,
    它的随机方法是设定随机种子的。
    Math类 此方法就是调用的Random类的nextDouble()方法。
    math的random只能获得一个随机数
    Math类的random方法使用比较方便,不需要导包、创建对象。
        public class RandomNum{
            public static void main(String[] args){
                    Random r1 = new Random(100);//第一个Random对象r1,随机种子100
                    Random r2 = new Random(100);//第二个Random对象r2,随机种子100
                    System.out.println("r1产生的值:"+r1.nextInt());
                    System.out.println("r2产生的值:"+r2.nextInt());
                    System.out.println("Math.random产生的值:"+(int)(Math.random()*100));
}
}

3.运行下列程序,结果是什么?查阅资料,分析为什么。

public class Test {
    public static void main(String args[]) { 
        double a = 0.1;
        double b = 0.1;
        double c = 0.1;
        if((a + b + c) == 0.3){
            System.out.println("等于0.3");
        }else {
            System.out.println("不等于0.3");
        }
    }     
}

该程序运行结果为:不等于0.3
原因:浮点型数据在进行运算时有极小误差。
为了处理精度损失的问题,可以使用java.math.BigDecimal类,查阅JDK帮助文档或教材p378,对上述程序进行修改。

import java.math.BigDecimal;
import java.math.MathContext;
public class Test {
       public static void main(String args[]) { 
           BigDecimal a = new BigDecimal(0.1);
           BigDecimal b = new BigDecimal(0.1);
           BigDecimal c = new BigDecimal(0.1);
            if(a.add(b).add(c).round(new MathContext(1)).equals(new BigDecimal("0.3"))){
                System.out.println("等于0.3");
            }else {
                System.out.println("不等于0.3");
            }
        }
    }

以上程序输出结果为:等于0.3
4.本次学习要点中其他需要总结的内容:因人而异,根据自己的学习情况,记录难掌握或难理解的内容,以及学有心得的内容。还存在哪些问题,也可以提出来,对于同学在博客中提出的问题,大家可以积极讨论,互帮互学。
二、实验总结
1.看商品猜价格
程序设计思路:
1.产生一个随机数的函数,给出价格
2.输入成绩
3.使其与产生的随机数比较(最多10次)
4.在十次内两数相等,则输出价格和输入次数,否则直接输出价格
2.万年历
程序设计思路:
1.判断是否是闰年
2.写出每月天数
3.计算出要输入的年月与1990年1月1日相距多少天
4.输出要输出的月份日历
3.评分系统
程序设计思路:
1.输入十位评委分别为五位选手的评分
2.写出求每位选手的得分的最大值 最小值 和 平均数的方法
3.为最终的得分按降序排序
问题:排序方法
解决:可直接用升序排序的方法,然后倒着输出。
三、代码托管

以上是关于java 利用Scanner类的nextInt()方法从控制台读入一个整数的主要内容,如果未能解决你的问题,请参考以下文章

java中引用数据类型Scanner类和Random类的使用-0509

scanner.nextInt() 返回 java.util.NoSuchElementException

关于java的scanner类

Java Scanner .nextInt() 跳过输入

Java 实验一

Java 之 Scanner 类