Ⅰ 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);/*輸出最大值*/
}
}