標籤:long markdown 小數 重載 函數名 一起 結束 ati 其他
運算子資料類型轉換:
小資料類型-------->大資料類型(自動類型轉換)
大資料類型--------->小資料類型(強制類型轉換)
強制類型轉換的格式:
小資料類型 變數名 = (小資料類型)大資料類型
注意的細節:
1.凡是byte、short、char資料類型資料在運算的時候都會自動轉換成int類型的資料再運算。
2.兩個不同資料類型的資料在運算的時候,結果取決於大的資料類型。
class Demo2 { public static void main(String[] args) { /* byte b= 11; // 一個位元組 short s = b; // 把b變數儲存的值賦予給s變數。2位元組 int i = s; // i是4位元組 long l = i; // l 是8個位元組。 System.out.println(l); int i = 128; //4個位元組 byte b =(byte) i; // 1個位元組 System.out.println(b); // -128 //如果是負數,那麼最高位肯定是1, 正數的二進位位的最高位是0。 System.out.println(Integer.toBinaryString(-7)); //sun給我們提供一個功能 Integer.tobinaryString() 查看一個資料的位元據形式的。 // 11111001(補碼) 凡是byte、short 、 char資料類型資料在運算的時候都會自動轉換成int類型的資料再運算。 byte b1 =1; byte b2 = 2; byte b3 = (byte)(b1+b2); System.out.println(b3); //3 System.out.println(‘a‘+1); //98 兩個不同資料類型的資料在運算的時候,結果取決於大的資料類型 int i =10; long l = 20; i = (int)(i+l); System.out.println(i); */ int i = 10; // byte b = i; // 一個整數沒有加上任何標識的時候,預設是int類型的資料。 //10 是一個常量, 編譯器在編譯的時候就能夠確認常量的值了,byte b = 10,在編譯到的時候 //java編譯器就會檢查到10並沒有超出byte的表示範圍,所以允許賦值。 //java編譯器在編譯 的時候並不能確認變數所儲存的值,變數儲存的值是在啟動並執行時候才在記憶體中分配空間 的。 System.out.println(b); }}
算術運算子:
+ (正數、加法、串連符)串連符的作用:讓任何的資料都可以與字串進行拼接。如果+號用於字串的時候,那麼+號就是一個串連符,並不是做加法功能了。
串連符要注意:任何類型的資料與字串使用串連符串連,那麼結果都是字串類型的資料。
++(自增): 自增就是相當於運算元+1.
前自增:++位於運算元的前面。比如:++a;
前自增:先自增,後使用。
後自增: 先使用,後自增。
--(自減):運算元-1.
前自減: --位於運算元的前面。--運算元
前自減:先自減,後使用。
後自減:--位於運算元的後面。 運算元--;
後自減: 先使用,後自減。
賦值運算子:
= (賦值運算子)
+=
-=
*=
/=
%=
比較子:比較子的結果都是返回一個布爾值的。
!= (不等於)
> (大於)
< (小於)
>= (大於等於)
<= (小於等於)
==用於比較兩個基礎資料型別 (Elementary Data Type)資料的時候,比較的是兩個變數所儲存的值是否一致.
==用於比較兩個參考型別變數的資料時候,比較的是兩個 參考型別變數所記錄的記憶體位址是否一致.
邏輯運算子:邏輯運算子的作用是用於串連布林運算式的。
amp; (與,並且)
規律: 只有左右變數同時為true,那麼結果才是true,否則就為false。
| (或,或者)
規律:只要兩邊的布林運算式有一邊為true,那麼結果就為true,只有兩邊同時為false 的時候,結果才是false.
^ (異或)
規律:只要兩邊的布林運算式 結果不一致,那麼結果就為true,如果左右兩邊 的布林運算式一致,那麼就為false.
! (非)
=================
&& (短路與\雙與)
短路與和單與符號的相同與不同點:
相同點:短路與和單與運算的結果是一樣的。
不同點:使用短路與的時候,如果左邊的布林運算式為false,則不會在運算右邊的布林運算式,從而提高了效率。使用單與的時候,即使發現左邊的布林運算式為false,還是會運算右邊的布林運算式的。只有左邊的布林運算式為false時,雙與的效率才要高於單與的.
|| (短路或\雙或)
短路或與單或的相同點與不同點:
相同點:運算的結果是一致的。
不同點:使用短路或的時候,當發現左邊的布林運算式為true時,則不會運算右邊的布林運算式。使用單或的時候 發現左邊的布林運算式為true,還是會運算右邊布林運算式。
位元運算符:位元運算符就是直接操作二進位位的。
amp;(與)
|(或)
^(異或)
規律:如果運算元A連續異或同一個運算元兩次,那麼結果還是運算元A。
位元運算符可能會出現的筆試題目:
- 交換兩個變數的值,不準出現第三方變數。
- 取出一個位元據的指定位元。要求讀取該位元據的低4位
00000000-00000000-00010100-01001101
amp; 00000000-00000000-00000000-00001111
--------------------------------------------------------------
00000000-00000000-00000000-00001101
移位元運算符:
<<(左移)
規律:一個運算元進行左移運算的時候,結果就是等於運算元乘以2的n次方,n就是左移的位元.
3<<1 = 3*2(1) = 6;
3<<2 = 3*2(2) = 12
3<<3 = 3*2(3) = 24
>>(右移)
規律:一個運算元在做右移運算的時候,實際上就是等於該運算元除以2的n次方,n就是移的位元。
3>>1 = 3 / 2(1) = 1
3>>2 = 3 / 2(2) = 0
>>>(無符號右移) :
無符號右移與右移的區別:進行右移運算的時候,如果運算元是一個正數,那麼左邊的空缺位使用0補,如果運算元是一個負數,那麼左邊的空缺位使用1補。而使用無符號右移的時候,不管是正數還是負數都統一使用0補。
三元運算子(三目運算子)
格式:
布林運算式?值1:值2;
三元運算子要注意的細節:
使用三元運算子的時候,一定要使用該運算式返回的結果,或者是定義一個變數接收該運算式返回的結果。
控制流程程語句控制流程程語句之(if)判斷語句
格式1:適用於一種情況使用。
if(判斷的條件){ //符合條件執行的代碼; }
格式2:適用於兩種情況下去使用的。
if(判斷條件){ //符合條件執行的代碼}else{ //不符合條件執行的代碼;}
格式二作用相當於三元運算子:布林運算式?值1:值2;
格式三:適用於多種情況下去使用的。
if(判斷條件1){ //符合條件1執行的代碼}else if(判斷條件2){ //符合條件2執行的代碼}else if(判斷條件3){ //符合條件3執行的代碼}......else{ //都不符合上述 的條件執行的代碼 }
if語句要注意的細節:
- 如果符合條件後只有一個語句需要執行,那麼可以省略大括弧。但是建議不要省略,因為結構不清晰。
- if語句的判斷條件後不能添加分號,否則會影響到執行的效果的。
控制流程程語句之----switch選擇判斷語句
switch語句的格式:
switch(你的選擇){ case 值1: 符合值1執行的代碼 break; case 值2: 符合值 2執行的代碼 break; case 值3: 符合值 3執行的代碼 break; case 值4: 符合值 4執行的代碼 break; ...... default: 你的選擇都符合上述的選項時執行的代碼; break;}
switch語句要注意的事項:
- switch語句使用的變數只能是byte、 char、 short、int、 String資料類型,String資料類型是從jdk7.0的時候開始支援的。
- case後面跟 的資料必須是一個常量。
- switch的停止條件:
switch語句一旦匹配上了其中的一個case語句,那麼就會執行對應的case中的語句代碼,執行完畢之後如果沒有遇到break關鍵字或者是結束switch語句的大括弧,那麼switch語句不會再判斷,按照代碼的順序從上往下執行所有的代碼。直到遇到break或者是結束siwitch語句的大括弧為止。
- 在switch語句中不管代碼的順序如何,永遠都是會先判斷case語句,然後沒有符合的情況下才會執行default語句。
if--else if---else if 語句與switch語句非常的相似:
switch語句的優點:switch語句的結構清晰。switch缺點:如果 判斷的條件是一個區間範圍的,使用switch操作就非常的麻煩了。
class Demo2{ public static void main(String[] args) { int option = 1; //定義一個變數儲存你的選擇 switch(option){ case 1: System.out.println("java"); case 2: System.out.println("C#"); case 3: System.out.println("javascript"); case 4: System.out.println("android"); default: System.out.println("你的選擇有誤"); } /* String str = "world"; switch(str){ case "hello": System.out.println("hello"); break; case "world": System.out.println("world"); break; } */ }}
迴圈語句----while迴圈語句
while迴圈 語句的格式:
while(迴圈的條件){ //迴圈語句;}
while迴圈語句要注意的事項:
- while迴圈語句一般是通過一個變數控制其迴圈的次數。
- while迴圈語句的迴圈體代碼如果只有一個語句的時候,那麼可以省略大括弧。但是也是不建議大家省略。
- while迴圈語句的判斷條件後面不能跟有分號,否則會影響到執行的效果。
控制流程程語句----do while迴圈語句
格式:
do{ //...}while(判斷條件);
while迴圈語句與do-while迴圈語句的區別:
while迴圈語句是先判斷後執行迴圈語句的,do-while迴圈語句是先執行,後判斷。不管條件是否滿足至少會執行一次。
11控制流程程語句之---for迴圈語句
for迴圈語句的格式:
for(初始化語句;判斷語句;迴圈後的語句){ //迴圈語句;}
for迴圈語句 要注意的事項:
- for(;;)這種寫法是一個死迴圈語句,相當於while(true);
- for迴圈語句的初始化語句只會執行一次,只是在第一次迴圈的時候執行而已。
- for迴圈語句的迴圈體語句只有一句的時候,可以省略大括弧不寫。但是不建議省略。
class Demo13 { public static void main(String[] args) { for(int i = 0 ; i< 5 ; i++){ for(int j = 0 ; j<=i ; j++){ //控制列數 System.out.print("*"); } //換行 System.out.println(); } }}
逸出字元:特殊字元使用””把其轉化成字元的本身輸出,那麼使用””的字元稱作為轉移字元。
常見的逸出字元有:
\b Backspace (退格鍵)\t Tab 定位字元(定位字元的作用就是為了讓一列對齊) 一個tab一般等於四個空格。\n 換行\r 斷行符號 把游標移動到一行的首位置上。
注意: 如果是在windows系統上操作檔案的時候需要換行,是需要\r\n一起使用的。如果是在其他的作業系統上需要換行,僅需要\n即可。
break關鍵字
break適用範圍:只能用於switch或者是迴圈語句中。
break作用:
- break用於switch語句的作用是結束一個switch語句。
- break用於迴圈語句中的作用是結束當前所在的迴圈語句。
continue關鍵字
continue的適用範圍:continue只能用於迴圈語句。
continue的作用:continue的作用是跳過本次的迴圈體內容。繼續下一次。
continue要注意的事項:
1.在一種情況下,continue後面不能跟有其他語句,因為是永遠都無法執行到。
2.continue 也可以配合標記使用的。
函數(方法):
函數的作用:提高功能代碼的複用性。
函數的定義格式:
修飾符 傳回值類型 函數名(形式參數..){ 需要被封裝的功能代碼; return 結果;}
public static int add(){ int a =2; int b =3; return a+b;}
修飾符: public static
傳回值類型:int。傳回值類型就是指函數運行完畢後,返回的結果的資料類型。
注意:某些函數是沒有結果返回給調用者的,那麼這時候傳回值類型是void。
函數名:add
函數名的作用:如果需要調用該函數就需要使用的函數名。 函數名只要符合標識符的命名規則即可。
函數名的命名規範:首單詞全部小寫,其他單詞的首字母大寫,其他小寫。
形式參數:如果一個函數在啟動並執行時候,存在著資料是要調用者確定 的,那麼這時候就應該定義形式參數。
return : 把一個結果返回給調用者。
函數的特點:
- 函數定義好之後,是需要被調用才會執行的。main函數是有jvm調用的,不需要我們手動調用。
- 函數定義好之後是需要被調用才會執行的。
- 如果一個函數沒有傳回值返回給調用者,那麼傳回值類型必須是使用void表示。
class Demo3 { public static void main(String[] args) { //String result = getGrade(189); //System.out.println(result); print(7); } //需求2: 定義一個函數列印一個乘法表,不需要返回任何資料。 public static void print(int row){ for(int i = 1 ; i<= row ; i++){ for (int j = 1 ;j<=i ;j++ ){ System.out.print(i+"*"+j+"="+i*j+"\t"); } //換行 System.out.println(); } } //需求1: 定義一個函數判斷一個分數的等級,把分數的等級返回給調用者。 public static String getGrade(int score){ String grade = ""; //定義一個變數儲存等級 if(score>=90&&score<=100){ grade = "A等級"; }else if(score>=80&&score<=89){ grade = "B等級"; }else if(score>=70&&score<=79){ grade = "C等級"; }else if(score>=60&&score<=69){ grade = "D等級"; }else if(score>=0&&score<=59){ grade = "E等級"; }else{ grade = "補考等級"; } return grade; //把等級返回給調用者 }}
注意:如果一個函數的傳回值類型是具體的資料類型,那麼該函數就必須要保證在任意情況下都保證有傳回值。(除了傳回值類型是void以外)
return 關鍵字的作用:
- 返回資料給函數的調用者。
- 函數一旦執行到了return關鍵字,那麼該函數馬上結束。(能結束一個函數)
注意:一個函數的傳回值類型 是void,那麼也可以出現return關鍵字,但是return關鍵字的後面不能有資料。
break關鍵字與return關鍵字的區別:
1.break關鍵字是結束一個迴圈。
2.return關鍵字是結束一個函數。
函數的重載:在一個類中出現兩個或者兩個以上的同名函數,這個稱作為函數的重載。
函數重載的作用:同一個函數名可以出現了不同的函數,以應對不同個數或者不同資料類型的參數。
函數重載的要求:
1.函數名一致。
2.形參列表不一致(形式參數的個數或者是對應的資料類型不一致)。
3.與函數的傳回值類型是無關的。
class Demo3 { public static void main(String[] args) { //System.out.println("Hello World!"); //add1(1,2); add(1,2.0); }// 這些函數都是在做加法運算。 public static double add(int a, int b) { System.out.println("兩個參數的總和: "+ (a+b)); return 3.14; } //重複定義 public static int add(int a, double b) { System.out.println("double參數的總和: "+ (a+b)); return 12; } /* public static void add(int a , int b , int c){ System.out.println("三個參數的總和: "+ (a+b+c)); } public static void add(int a , int b , int c,int d){ System.out.println("四個參數的總和: "+ (a+b+c+d)); }*/}
java(運算子,控制流程程語句,函數 )