日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

day02-Java基础语法

發布時間:2023/12/14 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 day02-Java基础语法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.運算符

1.1算術運算符(理解)

1.1.1運算符和表達式

運算符:對常量或者變量進行操作的符號

表達式:用運算符把常量或者變量連接起來符合Java語法的式子就可以稱為表達式

不同運算符連接的表達式體現的是不同類型的表達式

舉例說明:

int a=10; int b=20; int c=a+b;

+:是運算符,并且是算術運算符

a+b:是表達式,由于+是算術運算符,所以這個表達式叫算術表達式

1.1.2算術運算符

符號作用說明
+參看小學一年級
-參看小學一年級
*參看小學二年級,與x相同

/

參看小學二年級,與÷相同
%取余獲取的是兩個數據做除法的余數

注意:

/和%的區別:兩個數據做除法,/取結果的商,%取結果的余數

整數操作只能得到整數,要想得到小數,必須有浮點數參與運算

int a=10; int b=3; System.out.println(a/b);//輸出結果3 System.out.println(a%b);//輸出結果1

1.1.3字符的“+”操作

char類型參與算術運算,使用的是計算機底層對應的十進制數值,需要我們記住三個字符對應的數值:

'a'--97 a-z是連續的,所以'b'對應的數值是98,'c'是99,依次遞加

'A'--65 A-Z是連續的,所以'B'對應的數值是66,'c'是67,依次遞加

'0'--48 0-9是連續的,所以'1'對應的數值是49,'2'是50,依次遞加

//可以通過使用字符與整數做算術運算,得出字符對應的數值是多少 char ch1='a'; System.out.println(ch1+1);//輸出98,97+1=98char ch2='A'; System.out.println(ch2+1);//輸出66,65+1=66char ch3='0'; System.out.println(ch3+1);//輸出49,48+1=49

算術表達式中包含不同的基本數據類型值的時候,整個算術表達式的類型會自動進行提升

提升規則:

byte類型,short類型和char類型將被提升到int類型,不管是否有其他類型參與運算

整個表達式的類型自動提升到與表達式中最高等級的操作數相同的類型

等級順序:byte,short,char>int>long>float>double

例如:

byte b1=10;byte b2=20;//byte b3=b1+b2;//該行報錯,因為byte類型參與算術運算會自動提升為int,int賦值給byte可能損失精度int i3=b1+b2;//應該使用int接收byte b3=(byte)(b1+b2);//或將結果強制轉換為byte類型---------------------------------------- int num1=10; double num2=20.0; double num3 = num1+num2;//使用double接收,因為num1會自動提升為double類型

tips:正是由于上述原因,所以在程序開發中我們很少使用byte或者short類型定義整數,也很少會使用char類型定義字符,而使用字符串類型,更不會使用char類型做算術運算

1.1.4字符串的“+”操作

當“+”操作中出現字符串時,這個“+”是字符串連接符,而不是算術運算

System.out.println("itheima"+666);//輸出itheima666

在“+”操作中,如果出現了字符串,就是連接運算符,否則就是算術運算。當連續進行“+”操作時,從左到右逐個執行

System.out.println(1+99+"年黑馬");//輸出100年黑馬 System.out.println(1+2+"itheima"+3+4);//輸出3itheima34 //可以使用小括號改變運算的優先級 System.out.println(1+2+"itheima"+(3+4));//輸出3itheima7

1.2賦值運算符(應用)

賦值運算符的作用是將一個表達式的值賦給左邊,左邊必須是可修改的,不能是常量

符號?作用說明
=賦值a=10,將10賦值給a
+=加后賦值a+=b,將a+b的值賦給a
-=減后賦值

a-=b,將a-b的值賦給a

*=乘后賦值a*=b,將a*b的值賦給a
/=除后賦值a/=b,將a/b的值賦給a
%=取余后賦值a%=b,將a%b的值賦給a

注意:

擴展的賦值運算符隱含了強制類型轉換。

short s=10; s=s+10;//此行代碼報錯,因為運算中s提升為int類型,運算結果int賦值給short可能損失精度 s+=10;//此行代碼沒有問題,隱含了強制類型轉換,相當于s=(short)(s+10);

1.3自增自減運算符(理解)

符號作用說明
++自增變量的值加1
--自減變量的值減1

注意事項:

++和--既可以放在變量的后面也可以放在變量的前面。

單獨使用的時候,++和--無論放在變量的后面還是前面,結果都是一樣的

參與操作的時候,如果放在變量的后面,先拿變量參與操作,后拿變量做++或--

參與操作的時候,如果放在變量的前面,先拿變量做++或--,后拿變量參與操作

最常見的用法:單獨使用

int i=10; i++;//單獨使用 System.out.println("i"+i);//i:11int j=10; ++j;//單獨使用 System.out.println("j"+j);//j:11int x=10; int y=x++;//賦值運算,++放在后面,所以是使用x原來的值賦給y,x本身自增1 System.out.println("x:"+x+","+"y:"+y);//x:11 y:10int m=10; int n=++m;//賦值運算,++放在前面,所以是使用m自增后的值賦給n,m本身自增1 System.out.println("m:"+m+","+"n:"+n);//m:11 n:10

練習:

int x = 10; int y = x++ + x++ + x++; System.out.println(y);//y的值是多少? /*解析:三個表達式都是++在后,所以每次使用的都是自增前的值,但程序自左向右執行,所以第一次自增時,使用的是10進行計算,但第二次自增時,x的值已經自增到11了,所以第二次使用的是11,然后再次自增。。。所以整個式子應該是:int y = 10 + 11 + 12; 輸出的結果為33 */

1.4關系運算符(應用)

關系運算符有六種關系,分別是小于,小于等于,大于,等于,大于等于,不等于

符號說明
==a==b,判斷a和b的值是否相等,成立為true,不成立為false
!=a!=b,判斷a和b的的值是否不相等,成立為true,不成立為false
>a>b,判斷a是否大于b,成立為true,不成立為false
>=a>=b,判斷a是否大于等于b,成立為true,不成立為false
<a<b,判斷a是否小于b,成立為true,不成立為false
<=a<=b,判斷a是否小于等于b,成立為true,不成立為false

注意事項:

關系運算符的結果都是double類型,要么是true,要么是false

千萬不要把“==”誤寫為“=”,“==”是判斷是否相等的關系,“=”是賦值

int a = 10; int b = 20; System.out.println(a==b);//false System.out.println(a!=b);//true System.out.println(a>b);//false System.out.println(a>=b);//false System.out.println(a<b);//true System.out.println(a<=b);//true//關系運算的結果肯定是boolean類型,所以也可以將運算結果賦值給boolean類型的變量 boolean flag = a > b; System.out.println(flag);//輸出false

1.5邏輯運算符(應用)

邏輯運算符把各個運算的關系表達式連接起來組成一個復雜的邏輯表達式,以判斷程序中的表達式是否成立,判斷的結果是true或false

符號作用說明
&邏輯與a&b,a和b都是true,結果為true,否則為false
|邏輯或a|b,a和b都是false,結果為false,否則為true
^邏輯異或a^b,a和b的結果不相同為true,否則為false
!邏輯非!a,結果和a的結果正好相反
//定義變量 int i = 10; int j = 20; int k = 30;//&“與”,并且的關系,只要表達式中有一個值為false,結果為false System.out.println((i>j) &(i>k));//false & false,輸出false System.out.println((i<j) &(i>k));//true & false,輸出false System.out.println((i>j) &(i<k));//false & true,輸出false System.out.println((i<j) &(i<k));//true & true,輸出true System.out.println("----------------"); //|"或",或者的關系,只要表達式中有一個值為true,結果即為true System.out.println((i>j) | (i>k));//false & false,輸出false System.out.println((i<j) | (i>k));//true & false,輸出true System.out.println((i>j) | (i<k));//false & true,輸出true System.out.println((i<j) | (i<k));//true & true,輸出true System.out.println("----------------"); //^"異或",相同為false,不同為true System.out.println((i>j) ^ (i>k));//false & false,輸出false System.out.println((i<j) ^ (i>k));//true & false,輸出true System.out.println((i>j) ^ (i<k));//false & true,輸出true System.out.println((i<j) ^ (i<k));//true & true,輸出false System.out.println("----------------"); //!"非",取反 System.out.println((i>j));//false System.out.println(!(i>j));//!false,輸出為true

短路邏輯運算符

符號作用說明
&&短路與作用和&相同,但是有短路效果
||短路或作用和|相同,但是有短路效果

在邏輯與運算中,只要有一個表達式的值為FALSE,那么結果就可以判定為FALSE了,沒有必要將所有表達式的值都計算出來,短路與操作就有這樣的效果,可以提高效率。同理在邏輯或運算中,一旦發現值為TRUE,右邊的表達式將不再參與運算

邏輯與&,無論左邊真假,右邊都要執行

短路與&&,如果左邊為真,右邊執行,如果左邊為假,右邊不執行

邏輯或|,無論左邊真假,右邊都要執行

短路或||,如果左邊為假,右邊執行,如果左邊為真,右邊不執行

int x = 3; int y = 4; System.out.println((x++ > 4) & (y++ >5));//兩個表達式都會運算 System.out.println(x);//4 System.out.println(y);//5System.out.println((x++ > 4) && (y++ >5));//左邊已經可以確定結果為false,右邊不參與運算 System.out.println(x);//4 System.out.println(y);//4

1.6三元運算符(理解)

三元運算符語法格式:

關系表達式 ? 表達式1 :表達式2;

解釋:問號前面的位置是判斷的條件,判斷結果為boolean型,為TRUE時調用表達式1,為FALSE時調用表達式2,其邏輯為:如果條件表達式成立或滿足則執行表達式1,否則執行第二個。

舉例:

int a = 10; int b = 20; int c = a > b ? a : b;//判斷a>b是否為真,如果為真取a的值,如果為假,取b的值

三元運算符案例:

1、需求:動物園里有兩只老虎,已知兩只老虎的體重分別為180kg、200kg,請用程序實現判斷兩只老虎的體重是否相同

public class OperatorTest01{public static void main(String[] args){//1.定義兩個變量用于保存老虎的體重,單位為kg,這里僅僅體現數值即可int weight1 = 180;int weight2 = 200;//2.用三元運算符實現老虎體重的判斷,體重相同,返回TRUE,否則,返回FALSEboolean b = weight1 == weight2 ? true : false;//3.輸出結果System.out.println("b:" + b);} }

2.需求:一座寺廟里住著三個和尚,已知他們的身高分別為150cm,210cm,165cm,請用程序實現取這三個和尚的最高身高。

public class OperatorTest02{public static void main(String[] args){//1.定義三個變量用于保存和尚的身高,單位為CM,這里僅僅體現數值即可int height1 = 150;int height2 = 210;int height3 = 165;//2.用三元運算符獲取前兩個和尚身高較高值,并用臨時身高變量保存起來int tempHeight = height1 > height2 ? height1 : height2;//3.用三元運算符獲取臨時身高值和第三個和尚身高較高值,并用最大身高變量保存int maxHeight = tempHeight > height3 ? tempHeight : height3;//4.輸出結果System.out.println("maxHeight:"+maxHeight); } }

2.數據輸入(應用)

我們可用通過Scanner類來獲取用戶的輸入,使用步驟如下:

1.導包。Scanner類在java.util包下,所以需要將該類導入,導包的語句需要定義在類的上面

import java.util.Scanner;

2.創建scanner對象

Scanner sc = new Scanner(System.in);//創建Scanner對象,sc表示變量名,其他均不可變

3.接受數據

int i = sc.nextInt();//表示將鍵盤錄入的值作為int數返回

示例:

import java.util.Scanner; public class ScannerDemo{public static void main(String[] args){//創建對象Scanner sc = new Scanner(System.in);//接受數據int x = sc.nextInt();//輸出數據System.out.println("x:"+x);} }

改寫三個和尚案例,數據使用鍵盤錄入

improt java.util.Scanner; public class ScannerTest{public static void main(String[] args){// 身高未知,采用鍵盤錄入實現,首先導包,然后創建對象Scanner sc = new Scanner(System.in);//鍵盤錄入三個身高分別賦給三個變量System.out.println("請輸入第一個和尚的身高");int heigtht1 = sc.nextInt();System.out.println("請輸入第二個和尚的身高");int heigtht2 = sc.nextInt();System.out.println("請輸入第三個和尚的身高");int heigtht3 = sc.nextInt();//用三元運算符獲取前兩個和尚的較高身高值,并用臨時變量保存起來int tempHeight = height1 >height2 ? height1 :height2;//用三元運算符獲取臨時變量和第三個和尚的較高身高值,并用最大身高變量保存起來int maxHeight = tempHeight >height3 ? tempHeight :height3;//輸出結果System.out.println("這三個和尚中身高最高的是:"+maxHeight +"cm");} }

3.路程控制語句(應用)

在一個程序中執行過程中,各條語句的執行順序對程序的結果是有直接影響的。所以,我們必須清楚每條語句的執行流程。而且,很多時候要通過控制語句的執行順序來實現我們想要的功能。

3.1流程控制語句的分類

順序結構

分支結構(if、Switch)

循環結構(for、while、do...while)

3.2順序結構

順序結構是程序中最簡單最基本的流程控制,沒有特定的語法結構,按照代碼的先后順序,依次執行,程序中的大多數代碼都是這樣執行的

開始→語句A→語句B→語句C→結束

3.3分支結構之if語句

if語句格式1

格式: if(關系表達式){語句體; }

執行流程:

①首先計算關系表達式的值

②如果關系表達式的值為TRUE就執行語句體

③如果關系表達式的值為FALSE就不執行語句體

④繼續執行后面的語句內容

示例:

public class IfDemo{public static void main(String[] args){System.out.println("開始");//定義兩個變量int a = 10;int b = 20;//需求:判斷a和b的值是否相等,如果相等,就在控制臺輸出:a等于bif(a==b){System.out.println("a等于b"); }int c = 10;//需求:判斷a和c的值是否相等,如果相等,就在控制臺輸出:a等于cif(a==b){System.out.println("a等于c"); }System.out.println("結束");} }

if語句格式2

格式: if(關系表達式){語句體1; }else{語句體2; }

執行流程:

①首先計算關系表達式的值

②如果關系表達式的值為TRUE就執行語句體1

③如果關系表達式的值為FALSE就執行語句體2

④繼續執行后面的語句內容

示例:

public class IfDemo02{public static void main(String[] args){System.out.println("開始");//定義兩個變量int a = 10;int b = 20;// b = 5;//需求:判斷a是否大于b,如果是,在控制臺輸出:a的值大于b,否則,在控制臺輸出a的值不大于bif(a>b){System.out.println("a的值大于b");}else{System.out.println("a的值不大于b");}System.out.println("結束");} }

if語句案例:奇偶數

需求:任意給出一個整數,請用程序實現判斷該整數是奇數還是偶數,并在控制臺輸出該整數是奇數還是偶數

分析:

①為了體現任意給出一個整數,采用鍵盤錄入一個數據

②判斷整數是偶數還是奇數要分兩種情況進行判斷,使用if..else結構

③判斷是否偶數需要使用取余運算符實現該功能 number%2==0

④根據判定情況,在控制臺輸出對應的內容

import java.util.Scanner; public class IfTest01{public static void main(String[] args){//為了體現任意給出的一個整數,采用鍵盤錄入一個數據(導包、創建對象、接受數據)Scanner sc = new Scanner(System.in);System.out.println("請輸入一個整數:");int number = sc.nextInt();//判斷整數是偶數還是奇數分兩種情況進行判斷,使用if..esle結構//判斷是否偶數需要使用取余運算符實現該功能 number % 2 == 0//根據判定情況,在控制臺輸出對應的內容if(number%2==0){System.out.println(number+"是偶數");}esle{System.out.println(number+"是奇數");}} }

if語句格式3

格式: if(關系表達式1){j語句體1; }esle if(關系表達式2){語句體2; } ... else{語句體n+1; }

執行流程:

①首先計算關系表達式1的值;

②如果值為TRUE就執行語句體1,如果值為FALSE就計算關系表達式2的值

③如果值為TRUE就執行語句體2,如果只為FALSE就計算關系表達式3的值

④..

⑤如果沒有任何關系表達式為TRUE,就執行語句體n+1

示例:

鍵盤錄入一個星期數(1,2,...7),輸出對應的星期一,星期二,...星期日

import java.util.Scanner; public class IfDemo03{public static void main(String[] args){System.out.println("開始");//需求:鍵盤錄入一個星期數(1,2,..7),輸出對應的星期一,星期二,...星期日Scanner sc = new Scanner(System.in);System.out.println("請輸入一個星期數(1-7)");int week = sc.nextInt();if(week==1){System.out.println("星期一");}else if(week==2){System.out.println("星期二");}else if(week==3){System.out.println("星期三");}else if(week==4){System.out.println("星期四");}else if(week==5){System.out.println("星期五");}else if(week==6){System.out.println("星期六");}else{System.out.println("星期日");}System.out.println("結束");} }

if語句格式3案例:

需求:小明快期末考試了,小明爸爸對他說,會根據他不同的考試成績,送他不同的禮物,假如你可控制小明的得分,請用程序實現小明到底該獲得什么樣的禮物,并在控制臺輸出

分析:

①小明的考試成績未知,可以使用鍵盤錄入的方式獲取值

②由于小明獎勵種類較多,屬于多種判斷,采用if..else..if(格式實現)

③為每種判斷設置對應的條件

④為每種判斷設置對應的獎勵

import java.util.Scanner; public class IfTest02{public static void main(String[] args){//小明的考試成績未知,可以使用鍵盤錄入的方式獲取值Scanner sc = new Scanner(System.in);System.out.println("請輸入一個分數:");int score = sc.nextInt();//由于獎勵種類較多,屬于多種判斷,采用if..else..if格式實現//為每種判斷設置對應的條件//為每種判斷設置對應的獎勵//數據測試:正確的數據,邊界數據,錯誤數據if(score>100 || score<0){System.out.println("您輸入的分數有誤");}else if(score>=95&&score<=100){System.out.println("山地自行車一輛");}else if(score>=90&&score<=94){System.out.println("游樂場玩一次");}else if(score>=80&&score<=89){System.out.println("變形金剛玩具一個");}else{System.out.println("胖揍一頓");}} }

總結

以上是生活随笔為你收集整理的day02-Java基础语法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。