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码,需要转成数字
System.out.println(x);//这里输出1的ASCII码49
System.out.println((char)x);//转换成字符1
需要解决的问题:2 如果输入回车,那么系统会返回13 和 10
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');//13System.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比较两个数字的大小 两个参数由键盘输入的主要内容,如果未能解决你的问题,请参考以下文章