Java語言基礎
- 運算符與表達式
- 運算符
- 1、算術運算符
- 2、關系運算符
- 3、邏輯運算符( &&、||、 !、&、| 、^)
- 4、位運算符( >>、<<、>>>、&、|、^、~)
- 5、賦值運算符
- 6、條件運算符
- 7、字符串運算符
- 8、 運算符的優先級和結合性
- 由鍵盤輸入數據
- 由鍵盤輸入數據---輸入字符串
- 由鍵盤輸入數據---輸入數值
- 由鍵盤輸入數據——多個數據
- 簡化輸入方式
- 由鍵盤輸入數據---多個數據
- 例題展示
- 代碼展示:
- 運行結果:
運算符與表達式
運算符
根據操作數個數的不同,往往分為
- 單目運算符
- 雙目運算符
- 三目運算符。
按照運算符功能來分,基本的運算符有下面幾類。
算術運算符 +、-、*、/、%、++、–
關系運算符 >、<、>=、<=、==、!=
邏輯運算符 &&、||、 !、&、| 、^
位運算符 >>、<<、>>>、&、|、^、~
賦值運算符 =、擴展賦值運算符,如+=、/=等。
條件運算符 ? :
其他運算符 :包括分量運算符.、下標運算符[ ]、實例運算符instanceof、內存分配運算符new、強制類型轉換運算符(類型)、方法調用運算符( )等。
1、算術運算符
+ - * / % +(取正) -(取負) ++ –
兩個整數相“/”,結果為整數。
對取模運算符“%”來說,其操作數可以為者浮點數。如37.2%10=7.2。(默認雙精度)
Java語言對“+”進行了擴展,使它能夠進行字符串的連接,如"abc"+“de”,得到字符串"abcde"。
2、關系運算符
關系運算符是雙目運算符,用來比較兩個數的關系,不能在浮點數之間作“==”的比較。 其運算結果是布爾類型的值true或false。當運算符所對應的關系成立時結果為true,否則結果為假。所有的關系運算符參見表4。
3、邏輯運算符( &&、||、 !、&、| 、^)
邏輯運算符用來計算布爾類型的值,有單目運算符和雙目運算符,其運算結果是布爾類型的值true或false。
注:&&、 || 、!具有短路特性
4、位運算符( >>、<<、>>>、&、|、^、~)
位運算符分為按位運算符(Bitwise Operators)和移位運算符(Shift Operators)。位運算符用來計算整數類數值中的二進制位,計算結果也是整數
不同長度的整數進行按位運算時,會把二進制位數較短的整數的高位(左側)補0,補齊位數后再進行運算。
5、賦值運算符
賦值運算符分為簡單賦值運算符(Simple Assignment Operator)
和復合賦值運算符(Compound Assignment Operators)。
簡單賦值運算符只有=,用于計算運算符=的右邊表達式的值并將其送到左邊的存儲單元中。使用復合賦值運算符,可以使得表達式變得簡潔,同時也有助于加快程序運行速度。所有的賦值運算符參見表5。
復合賦值運算表達式的一般形式是:
<表達式1> <運算符>= <表達式2>
6、條件運算符
一般形式為:expression?statement1:statement2
注:
1.statement1和statement2需要返回相同的數據類型,且該類型不能是void。
2.一般用來實現if-else條件語句的功能
(max=a>b?a:b)
7、字符串運算符
字符串運算符 “+” 是以String為對象進行的操作。運算符“+”完成字符串連接操作,如果必要,則系統自動把操作數轉換為String型。
float a=100.0; //定義變量a為浮點型
print(“The value of a is”+a+“\n”); //系統自動將a轉換成字符串
String s1+=a;//s1=s1+a,若a非String型,自動轉換為String型。
8、 運算符的優先級和結合性
在對一個表達式進行運算時,要按運算符的優先順序從高向低進行,同級的運算符則按從左到右的方向進行,故運算符有優先級和結合性。
不必死記硬背運算符的優先級。必要時可以在表達式中使用圓括號,圓括號的優先級最高。圓括號還可以使表達式顯得更加清晰。
int x = 5;
int y = 5;
boolean z = x * 5 == y + 21;
boolean z = (x * 5) == (y + 21)
由鍵盤輸入數據
鍵盤輸入的數據,不管是文字還是數字,Java皆視為字符串,因此若是要由鍵盤輸入數字則必須再經過轉換。
由鍵盤輸入數據—輸入字符串
//appA_3.java 由鍵盤輸入字符串
import java.io.*; //加載java.io類庫里的所有類
public class App3
{public static void main(String[] args) throws IOException{BufferedReader buf;String str;buf = new BufferedReader (new InputStreamReader (System.in));System.out.print("請輸入字符串;");str = buf.readLine(); //將輸入的文字指定給字符串變量str存放System.out.println("您輸入的字符串是:"+str); //輸出字符串}
}
由鍵盤輸入數據—輸入數值
由鍵盤輸入的數據,不管是文字還是數字,Java皆視為字符串,
因此若是要由鍵盤輸入數字則必須再經過轉換。
//App4.java 由鍵盤輸入數值型數據
import java.io.*;
public class App4
{public static void main(String[] args) throws IOException{float num;String str;BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in));System.out.print("請輸入一個實數:");str=buf.readLine(); //將輸入的文字指定給字符串變量str存放num= Float.parseFloat(str); //將str轉換成float類型后賦給numSystem.out.println("您輸入的數為:"+num);}
}
由鍵盤輸入數據——多個數據
//方法1:App5.java 由鍵盤輸入多個數據
import java.io.*;
public class App5{public static void main(String[] args) throws IOException{int num1,num2;String str1,str2;InputStreamReader in;in= new InputStreamReader(System.in);BufferedReader buf;buf=new BufferedReader(in);System.out.print("請輸入第一個數:");str1=buf.readLine(); //將輸入的內容賦值給字符串變量str1num1=Integer.parseInt(str1); //將str1轉成int類型后賦給num1System.out.print("請輸入第二個數:");str2=buf.readLine(); //將輸入的內容賦值給字符串變量str2num2=Integer.parseInt(str2); //將str2轉成int類型后賦給num2System.out.println(num1+"*"+num2+"="+(num1*num2));}
}
簡化輸入方式
為了簡化輸入操作,從Java SE 5版本開始在java.util類庫中新增了一個類專門用于輸入操作的類Scanner,可以使用該類輸入一個對象。
- 標準輸入/輸出流
System.out 標準輸出流
System.in 標準輸入流 - 使用Scanner類從控制臺輸入,創建它的對象,以讀取來自System.in 的輸入:
Scanner input = new Scanner(System.in);( Scanner類在包java.util里,在第一行要被導入)
對象可以調用nextDouble()方法來獲取一個double值
double d = input.nextDouble(); - Scanner對象的方法:在該結構中用創建的reader對象調用nextDouble()方法來讀取用戶從鍵盤上輸入的double型數據,也可用reader對象調用下列方法,讀取用戶在鍵盤上輸入的相應類型的數據:
nextByte()、 nextShort()、 nextInt()
nextLong()、 nextFloat() 、nextDouble()
next() 讀入一個字符串
nextLine() 讀取一整行文本由鍵盤輸入數據—多個數據
//方法2:App3_6.java 由鍵盤輸入多個數據
import java.util.*; //加載java.util類庫里的所有類
public class App3_6
{public static void main(String[] args){int num1;double num2;Scanner reader=new Scanner(System.in);System.out.print("請輸入第一個數:");num1= reader.nextInt(); //將輸入的內容作為int型數據賦值給變量num1System.out.print("請輸入第二個數:");num2= reader.nextDouble(); //將輸入的內容作為做double型數據賦值給變量num2System.out.println(num1+"*"+num2+"="+(num1*num2));}
}
例題展示
- 編寫程序,給定半徑,計算圓的面積
代碼展示:
package shujia_test1;import java.util.Scanner;
public class Csdn2_2 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("Enter a number for radius:");final double PI = 3.14159;double radius = input.nextDouble();double area = radius * radius * PI;System.out.println("The area is"+" " + area);}
}
運行結果:
博主用心寫,讀者點關注;互動傳真情,知識不迷路