Ⅰ java比较两个数大小
改:
import java.util.Scanner;
public class CompareTwoNumber1{
double number1,number2;
Scanner scanner;
public CompareTwoNumber1(){
System.out.println("请输入两个数:");
scanner =new Scanner(System.in);
number1=scanner.nextDouble();
number2=scanner.nextDouble();
System.out.println("较大的数是:"+Math.max(number1,number2));
}
public static void main(String args[]){
CompareTwoNumber1 ct=new CompareTwoNumber1();
}
}
Ⅱ Java比较两个数字的大小 两个参数由键盘输入
java 从键盘输入2个数字,比较大小
一:使用Systems.in.read()方法来写
首先分析,System.in.read()方法,该方法从键盘读入一个字符,然后返回它的ASCII码。
需要解决的问题: 1. 返回的是ASCII码,需要转成数字
intx=System.in.read();//如果输入1
System.out.println(x);//这里输出1的ASCII码49
System.out.println((char)x);//转换成字符1
需要解决的问题:2 如果输入回车,那么系统会返回13 和 10
intx=System.in.read();
inty=System.in.read();
System.out.println(x+" "+y);//输出1310
因为:我们敲击键盘的回车,比较特殊,对于该方法而言:
相当于输入了两次
第1次时读到的字符其实是回车符 -->转成ASCII码---->13
第2次接受到的是换行符 -->转成ASCII码---->10
System.out.println((int)' ');//13
System.out.println((int)' ');//10
需要解决的问题:3 使用方法一次只能获得一个字符,输入123 回车,得到的只是1
我们不清楚,用户输入的时候,到底要输入几位数字,那么需要使用死循环来读取。什么时候跳出循环?很简单,前面说了,读取回车代表的字符13 就可以退出循环了。
完善后的代码
importjava.io.IOException;
publicclassTest{
publicstaticvoidmain(String[]args)throwsIOException{
System.out.println("请输入第一个数字");
doublea=getNum();//调用方法读取第一个数字
System.out.println("请输入第二个数字");
doubleb=getNum();//读取第二个数字
if(a>b){
System.out.println(a+">"+b);
}elseif(a<b){
System.out.println(a+"<"+b);
}else{
System.out.println(a+"="+b);
}
}
//该方法用System.in.read()来读取数字
publicstaticdoublegetNum()throwsIOException{
Stringx="";//定义一个字符串,用于拼接用户的输入
while(true){
inta=System.in.read();
if(a==13){//如果是回车符就跳出循环
break;
}
x+=(char)a;//拼接有效的输入
}
returnDouble.parseDouble(x);//从字符串转换到浮点数字
}
}
运行测试
请输入第一个数字
12.5
请输入第二个数字
52.1
12.5<52.1
拓展:从上面可以看出 直接使用System.in.read() 来读取用户的输入,是相当的麻烦。
所以,平常我们利用IO知识, 使用其他流来包装这个底层的流,方便我们读取
importjava.io.BufferedReader;
importjava.io.InputStreamReader;
publicclassTest2{
publicstaticvoidmain(String[]args)throwsException{
//BufferedReader从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
Stringx=br.readLine();//每次读取一行,自动摒弃回车符和换行符
doublea=Double.parseDouble(x);//
System.out.println(a);
}
}
当然,还有更简单的,就是利用Scanner扫描器类来实现读取 这也是最常用的方式
importjava.util.Scanner;
publicclassTest3{
publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
doublea=input.nextDouble();
}
}
Ⅲ JAVA比较2个数大小
你的代码我改了一下
这个应该是符合你的要求的
import java.awt.*;
import java.awt.event.*;
public class ActionEventDemol implements WindowListener{
Frame f = new Frame("ActionEventDemol");
Label msg = new Label("第一个数:",Label.CENTER);
Label msg1 = new Label("第二个数:",Label.CENTER);
Label msg2 = new Label("大的数:",Label.CENTER);
Label msg3 = new Label("",Label.CENTER);
TextField name = new TextField(10);
TextField output = new TextField(10);
Button bConfirm = new Button("确定");
Button bReset = new Button("重置");
Listener lsn = new Listener(this);
public ActionEventDemol(){
f.setLayout(null);
f.add(msg);
f.add(msg2);
f.add(name);
f.add(output);
f.add(bConfirm);
f.add(bReset);
f.add(msg1);
f.add(msg3);
msg.setBounds(20,40,120,10);
msg1.setBounds(20,60,120,10);
msg2.setBounds(20,90,50,10);
msg3.setBounds(30,90,120,10);
name.setBounds(140, 40, 140, 20);
output.setBounds(140, 60,140, 20);
bConfirm.setBounds(40, 110, 70, 20);
bReset.setBounds(190, 110, 70, 20);
f.setSize(300,150);
f.setVisible(true);
bConfirm.addActionListener(lsn);
bReset.addActionListener(lsn);
f.addWindowListener(this);
}
public static void main(String[] args){
new ActionEventDemol();
}
public void windowActivated(WindowEvent e){}
public void windowDeactivated(WindowEvent e){}
public void windowIconified(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}
public void windowOpened(WindowEvent e){}
public void windowClosed(WindowEvent e){}
public void windowClosing(WindowEvent e){
System.exit(0);
}
class Listener implements ActionListener{
ActionEventDemol ob;
Listener(ActionEventDemol ob){
this.ob = ob;
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == ob.bConfirm){
String s1 = name.getText();
String s2 = output.getText();
double d1;
double d2;
try{
d1 =Double.parseDouble(s1);
d2 =Double.parseDouble(s2);
if(d1>d2)
msg3.setText(s1);
else
msg3.setText(s2);
name.setText("");
output.setText("");
}catch (NumberFormatException e1){
msg3.setText("请输入数字");
}
}else if(e.getSource()==ob.bReset){
ob.name.setText("");
}
ob.output.setText("");
}
}
}
Ⅳ java:比较2个数的大小、相等用三目运算的怎么写,麻烦给一些说明,谢谢!
java code: public class Ternary {
public static void compareNum() {
double num1 = 1d;
double num2 = 2d;
double num3 = 3d;
double num4 = 4d;
double maxNum = ((num1>num2 ? num1 : num2)>(num3>num4 ? num3 : num4)) ? (num1>num2 ? num1 : num2) : (num3>num4 ? num3 : num4);
System.out.print("最大值:"+maxNum);
}
}public class Start {
public static void main(String[] arg) {
Ternary.compareNum();
}
} ps:最小值大同小异
Ⅳ java 2个数字比大小 怎么做最有效率
如果仅仅是比较两个数之间的大小的话其实用那种都没什么差别,谈不上最优。如果是比较两个以上的话在for循环里调用Math.Max/Math.min来两两处理,选出最大/最小的与下一个再进行比较,感觉还是满效率的,又或者你先将需要比较的数存进数组里,然后调用java提供的sort方法来处理。
Ⅵ JAVA怎么比较两个数的大小
1、由于设置delimiter为,所以输入的时候每个后面都有一个,即单输入4,5是不行的,需要输入4,5,才会有结果。
2、可以直接使用三目运算符,如c=a>b?a:b;
Ⅶ JAVA怎么用if语句 比较两个数的大小 急!!谢谢!在线等
public class Compare {
public static void main(String[] args) {
int a = 2;
int b = 3;
if (a > b) {
System.out.println("a大于b");
} else {
System.out.println("a小于b");
}
}
}
Ⅷ java问题:判断两个数的大小
importjava.util.Scanner;
publicclasszuoye03_5_2{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.println("---->输入两个数(例如2012):");
intmax=sc.nextInt();/*键盘输入*/
intmin=sc.nextInt();
Stringa;/*定义变量*/
a=(max>min)?"大":"小";
System.out.println(a);/*输出最大值*/
}
}