java基礎 筆記3

2021-06-20 06:02:28 字數 4332 閱讀 3421



邏輯運算

運算子兩側為boolean型別,運算的結果也必須是boolean型別的值

&     邏輯與,單與運算

當運算兩側都為true時,結果為true,否則為false。

|      邏輯或,單或運算

當兩側都為false時結果為false,否則為true。

^      邏輯異或

當兩側相同時(同為true或者同為false),結果為false,否則結果為true。

&&     雙與運算

當運算兩側都為true時,結果為true,否則為false。

雙與和單與的區別: 雙與運算當左側為false時,右側的表示式不參與運算。

||     雙或

當兩側都為false時結果為false,否則為true。

對於雙或而言,當左側為true時,右側不參與運算。

!     非運算

非true為false   非false為true

位運算          指得是二進位制數字運算

&     按位與運算

運算規律:當相同的二進位制數字上都為1時,與的結果就為1,否則為0.

|     按位或運算

運算規律:當相同的二進位制數字上都為0時結果為0,否則為1.

^     按位異或運算

運算規律:當相同的二進位制數字上資料相同時,結果為0,否則為1.

應用:對同乙個數異或兩次,得到是原來的數。可以用於加密。          

練習:交換兩個數

使用第三方變數

不使用第三方變數交換兩個空間中的值,可以使用加減法完成。但是,當資料過大時,會發生資料溢位。

溢位解決方案: 使用按位異或運算代替。

class test1

} 取反  ~

<<     左移符號     高位移出的捨棄,低位用0補。

當對乙個整數向左移動n位時,相當於給原數乘以2的n次方(注意n為n%32的值,n=33相當於移動n的1次方)資料過大時,此規律不適用。

>>     右移符號     

帶符號右移,最高位補的數取決於原有資料最高位是什麼。不帶符號的右移,則不管最高位是什麼都補0.

當對乙個整數向右移動n位時,相當於給原數除以2的n次方(注意n為n%32的值,n=33相當於移動n的1次方)資料過大時,此規律不適用。

>>>     無符號右移

練習:     

需求:     給定的整數60,獲取其十六進製制數字的表現形式

思路:     1,十六進製制它是怎麼來的

按照每四個二進位制數字為一組,把它轉成乙個十六進製制數字。

2,怎麼取出二進位制數中的四個二進位制位上的數。要取出4位。原二進位制數與上1111,取出最低的那4個二進位制位上的資料。

3,上述方式只能取出最低的那4個二進位制數字上的資料,接下來怎麼取出其他?   可以使用無符號右移,對原來的資料向右移動4位,在進行第二步。

步驟:     1,需要乙個變數存放這個整數,

2,對這個資料進行&運算,

3,列印這個數

4,對原數無符號右移4位

5,對移動後的新值再進行&運算

6,列印這個值

class test2

} 三元運算子(三目運算)

一元運算:運算子一側有資料

二元運算:算術運算 邏輯運算  關係運算

格式:  (表示式1)?表示式2 : 表示式3;

例: max=a

運算原則:     1) 表示式一的運算結果必須為boolean型別的值

2) 當表示式一的結果為true時,表示式2的運算結果就為整個三元運算子的結果。

3)當表示式1的結果為flase時,表示式3的運算結果就為整個三元運算子的結果。

class noname1

格式說明:if關鍵字後面是一對小括號,小括號後面是沒有分號的,小括號中的表示式運算完的結果必須是boolean型別的值。

第二種格式:     if()

else

三元運算可以稱為if-else簡化形式。但有前提,如果if-else執行後有具體的結果,就可以使用三元運算代替它。否則無法代替。

練習:需求:對給定的1~7的乙個數,輸出其對應的星期。

思路:1,需要判斷當前這個資料具體是幾。可以使用if判斷結果來實現。

2,判斷成立後,需要輸出對應的星期

步驟:1,需要定義變數,儲存當前這個資料。

2,判斷當前這個資料具體是幾

class test3

} 判斷結構的第三種情況:

if(判斷的條件表示式)

else if()

else if()

。。。。。

作業:需求:根據指定的月份,輸出對應的季節。

春季 3 4 5

夏季 6 7 8

秋季 9 10 11

冬季 12 1 2

class test4

} switch(多分枝結構)

格式:switch(表示式)    計算的結果只能為byte short int char

switch的執行流程:

jvm會先計算switch表示式的值,使用這個值和case後面的值做對比。當某乙個case身後的值和表示式的值匹配,就會執行當前這個case身後的語句。若,case身後的語句沒有break,此時會繼續往下執行,直到switch語句結束。

default 和 case 是程式的入口。先找case入口。

default:

system.out.println("e");

case 2:

system.out.println("b");

break;

編譯結果為 e b ,因為default語句沒有break語句,jvm從入口進去後,沒有遇到break,會繼續執行,直到遇到break。

if結構和switch結構的區別

1,表示式的結果型別不同

if(判斷的條件表示式  boolean型別值)

switch(具體資料型別  byte short int char 列舉 string)

2,功能上的差異

if 能判斷區間

switch只能是具體值

switch練習:

需求:相對成績進行劃分

90--100  a

80--89    b

70--79    c

60--69    d

60以下   e     

思路:1,使用switch結構,switch只能判斷確切的值

怎麼把區間變成確切值?

2,發現區間是有規律:

90 - 99    可以使用9代替

。。。。

class test5

} else

system.out.println("error"); }

}迴圈結構

while語句

格式:     while(迴圈的條件表示式)

練習:

需求:求出1-100之間能被3和7整除的所有數的和值

思路:1,怎麼提供1-100的這些資料

想這樣有規律的資料,可以使用迴圈提供出來。

2,使用迴圈將資料提供出來之後,需要對提供出來的這些資料進行判斷。   怎麼判斷? 使用if判斷,判斷條件怎麼寫?

num % 3 == 0 && num % 7 == 0

3,判斷結束否,如果資料符合條件,需要求和,怎麼求和。           需要定義乙個變數儲存每次求和,需要將每次符合條件的資料都加到這個變數中。

步驟:1,定義變數,通過迴圈控制其變化

2,寫迴圈提供資料

3,對資料進行判斷

4,求和

5,i更新

6,列印

class  test6

//  5,x更新

x++ ; }

//  6,列印

system.out.println(sum); }

}作業:

需求:求1~100之間是6的倍數的個數和和值

思路:1,怎麼得到1-100這件的數,採用迴圈可以得到。

2,判斷出6的倍數的數x%6=0,並統計。

3,資料符合條件,再求和

步驟:1,定義變數,通過迴圈控制其變化

2,寫迴圈控制資料

3,對資料進行判斷

4,符合條件,計數

5,求和

6,變數更新

7,列印

class test7

//  6,變數更新

x++ ; }

//  7,列印

system.out.println("符合條件個數="+g);

system.out.println("sum="+sum); }

}

java基礎筆記精簡版3

回顧 識別符號 用來定義類名,方法名,變數名的字段 class demo 命名規則 由字母,數字,下劃線,不能以數字開頭 區分大小寫 不能使用關鍵字 長度無限制 命名習慣 見名知義 駝峰式命名 類名首字母大寫 長度15個字元 變數 特點 值是可以改變的 可以重複使用的區域 格式 型別 名字 賦值 i...

安卓開發之java基礎筆記 3

分支及迴圈語句 1.if條件結構 if 條件 2.if.else條件結構 if 條件 else 3.if.else if條件結構 if 條件1 else if 條件2 else if 條件n else 4.巢狀的條件結構 if 條件1 5.switch分支語句 switch 表示式 當有多重條件需要...

java學習筆記3

一些異常 exception ioexception numberformatexception illegalargumentexception arrayindexoutofboundexception 用法try catch e throws exception catch e 互動式輸入 b...