Java比较两个数字的大小 两个参数由键盘输入

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java比较两个数字的大小 两个参数由键盘输入相关的知识,希望对你有一定的参考价值。

Java比较两个数字的大小 两个参数由键盘输入 ,请用Systems.in.read()语句写出来 谢谢
第一个答案好像有点问题,while(b==-1||b==13||b==10); 这是什么意思 而且运行后也有点问题

java 从键盘输入2个数字,比较大小

一:使用Systems.in.read()方法来写

首先分析,System.in.read()方法,该方法从键盘读入一个字符,然后返回它的ASCII码。

        需要解决的问题: 1. 返回的是ASCII码,需要转成数字

int x =System.in.read();//如果输入1
System.out.println(x);//这里输出1的ASCII码49
System.out.println((char)x);//转换成字符1

        需要解决的问题:2 如果输入回车,那么系统会返回13 和 10

int x =System.in.read();
int y =System.in.read();
System.out.println(x+"\\t"+y);//输出13 10

因为:我们敲击键盘的回车,比较特殊,对于该方法而言:

相当于输入了两次

第1次时读到的字符其实是回车符\\r-->转成ASCII码---->13

第2次接受到的是换行符\\n-->转成ASCII码---->10

System.out.println((int)'\\r');//13
System.out.println((int)'\\n');//10

       需要解决的问题:3 使用方法一次只能获得一个字符,输入123 回车,得到的只是1

我们不清楚,用户输入的时候,到底要输入几位数字,那么需要使用死循环来读取。什么时候跳出循环?很简单,前面说了,读取回车代表的字符13 就可以退出循环了。


完善后的代码

import java.io.IOException;
public class Test 
public static void main(String[] args) throws IOException 
System.out.println("请输入第一个数字");
double a = getNum();//调用方法读取第一个数字
System.out.println("请输入第二个数字");
double b = getNum();//读取第二个数字

if(a>b)
System.out.println(a+">"+b);
else if(a<b)
System.out.println(a+"<"+b);
else
System.out.println(a+"="+b);


        //该方法用System.in.read()来读取数字
public static double getNum() throws IOException 
String x = "";//定义一个字符串,用于拼接用户的输入
while (true) 
int a = System.in.read();
if (a == 13) //如果是回车符就跳出循环
break;

x += (char) a;//拼接有效的输入

return Double.parseDouble(x);//从字符串转换到浮点数字

运行测试

请输入第一个数字
12.5
请输入第二个数字
52.1
12.5<52.1


拓展:从上面可以看出 直接使用System.in.read() 来读取用户的输入,是相当的麻烦。

所以,平常我们利用IO知识, 使用其他流来包装这个底层的流,方便我们读取

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Test2 
public static void main(String[] args) throws Exception 
//BufferedReader从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。 
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String x = br.readLine();//每次读取一行,自动摒弃回车符和换行符
double a = Double.parseDouble(x);//
System.out.println(a);

当然,还有更简单的,就是利用Scanner扫描器类来实现读取 这也是最常用的方式

import java.util.Scanner;
public class Test3 
public static void main(String[] args)  
Scanner input = new Scanner(System.in);
double a = input.nextDouble();

参考技术A import java.io.IOException;
public class Main
public static void main(String[] args)
int a=0,b=0;
try
do
System.out.println("请输入第1个数");
a = System.in.read();
while(a==-1||a==13||a==10);

do
System.out.println("请输入第2个数");
b=System.in.read();
while(b==-1||b==13||b==10);
System.out.println("b="+b);
if(a<b)
int t=a;a=b;b=t;


System.out.println("大数为"+a);
System.out.println("小数为"+b);
catch (IOException ex)
System.out.println("输入异常");




本回答被提问者采纳

Linux下shell脚本中怎么比较两个数字

参考技术A [
1
-gt
0
]
测试1是否大于0,-gt表示大于,-lt测试小于,-eq比较两个数字是否相等

以上是关于Java比较两个数字的大小 两个参数由键盘输入的主要内容,如果未能解决你的问题,请参考以下文章

用java编程 输入两个整数并比较它们的大小

python 从键盘输入a、b两个数,按大小顺序输出它们

两个值比较大小,c语言运行时如何输入两个数字

C++编程,从键盘输入两个数组,求两个数组的交集并输出。

C语言 从键盘上输入2个int型数 比较大小,并且显示最小数

c语言 从键盘上任意输入一个字符(字母大小写,数字,控制字符和其他字符)判断所属字符类型,只发