java 键盘输入函数
发布网友
发布时间:2022-04-24 02:00
我来回答
共5个回答
热心网友
时间:2023-10-20 13:36
请楼主参考一下我的代码,祝你学习愉快
import java.io.*;
import java.util.Scanner; //导入Scanner对象;
public class CompareTwoNumbers{
public static void main(String args[]){
Double number1,number2;
System.out.print("请输入第一个数:");
Scanner scanner = new Scanner(System.in);//实例化一个Scanner对象;
number1 = scanner.nextDouble();//从键盘输入一个实数赋值给number1;
System.out.print("请输入第二个数:");
number2 = scanner.nextDouble();//从键盘输入一个实数赋值给number1;
if(number1<number2)
System.out.println("较大的数:"+number2);
else if (number1>number2) System.out.println("较大的数:"+number1);
else System.out.println("两个数相同");
}
}
追问按照你这样写是可以AC的,但是把输入但作为一个函数 就报错 是什么问题呢
追答这个题目就是输入两个数求和,没那么复杂吧
热心网友
时间:2023-10-20 13:37
import java.util.Scanner;//导入Scanner类,用它来接收输入的字符或字符串
public class ScannerTest {
public static void main(String[] args) {
// TODO 自动生成方法存根
Scanner reader=new Scanner(System.in);//构造扫描器
System.out.print("输入任意字符 :");
String s=reader.nextLine();//
获得输入的字符,并赋给字符串型变量s
System.out.println("您输入的字符为:"+s);
}
}
热心网友
时间:2023-10-20 13:37
你说对了,是read函数写错了,修改如下:
private static Scanner sc = new Scanner(System.in);
private static int readNum() {
int x = sc.nextInt();
return x;
}
你每调用一次readNum(),它都创建一个Scanner,而且还用同一个System.in流追问3Q!!
但是我不是很懂你的意思哦,Scanner对象sc为局部变量,函数运行完不是应该,自动销毁吗?
追答System.in流 是以回车键为结束符的,也就是敲了回车键后,就把数据 发到缓冲区。
假如输入的数据是 : 12 (回车) 23 (回车)那么可以得到正确的答案。
但如果输入的数据是 : 12 (空格) 23 (回车)那么不能得到正确的答案。
因为你每new 一次Scanner,将会把缓冲区里的内容读取出来。在 12 (空格) 23 (回车)这种情况下,Scanner 里面有了12 23 两个数,但你调用nextInt();函数时,只能获取12这个数。你下一次new Scanner 的时候 ,23这个数永远读不到了。它在死等你输入数字,你又不输入,就Runtime Error
热心网友
时间:2023-10-20 13:38
第二种写法没错啊,你是什么编译环境?
热心网友
时间:2023-10-20 13:38
我按你的代码写了一遍结果正常执行啊,,追问执行是可以的 就是不能AC 奇怪了
而且我Debug 也找不到错误