欧美一级在线免费观看-色播在线精品一区二区三区四区-成人一区二区在线播放-免费污片软件-粉嫩久久99精品久久久久久夜-成人免费看片'在线观看-亚洲情在线-伊人色综合一区二区三区-啪啪伊人网-午夜看片网站-欧美日韩免费在线观看视频-九色视频在线播放-久久av综合网-av女同在线-在线一区欧美-91在线观看网址

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計(jì) | 電子開發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 編程學(xué)習(xí) >> Java >> 正文

JAVA基礎(chǔ)語(yǔ)法,JAVA入門

作者:佚名    文章來(lái)源:網(wǎng)絡(luò)整理    點(diǎn)擊數(shù):    更新時(shí)間:2025/2/5

前言

本文是前三篇文章的整合。

1. Java概述

1.1 Java語(yǔ)言背景介紹(了解)

語(yǔ)言:人與人交流溝通的表達(dá)方式

計(jì)算機(jī)語(yǔ)言:人與計(jì)算機(jī)之間進(jìn)行信息交流溝通的一種特殊語(yǔ)言

Java語(yǔ)言是美國(guó)Sun公司(Stanford University Network)在1995年推出的計(jì)算機(jī)語(yǔ)言

Java之父:詹姆斯·高斯林(James Gosling)

2009年,Sun公司被甲骨文公司收購(gòu),所以我們現(xiàn)在訪問(wèn)oracle官網(wǎng)即可:https://www.oracle.com

java語(yǔ)言的三個(gè)版本:

JavaSE: Java 語(yǔ)言的(標(biāo)準(zhǔn)版),用于桌面應(yīng)用的開發(fā),是其他兩個(gè)版本的基礎(chǔ)

JavaME: Java 語(yǔ)言的(小型版),用于嵌入式消費(fèi)類電子設(shè)備

JavaEE: Java 語(yǔ)言的(企業(yè)版),用于 Web 方向的網(wǎng)站開發(fā)

1.2 Java語(yǔ)言跨平臺(tái)原理(理解)

Java程序并非是直接運(yùn)行的,Java編譯器將Java源程序編譯成與平臺(tái)無(wú)關(guān)的字節(jié)碼文件(class文件),然后由Java虛擬機(jī)(JVM)對(duì)字節(jié)碼文件解釋執(zhí)行。所以在不同的操作系統(tǒng)下,只需安裝不同的Java虛擬機(jī)即可實(shí)現(xiàn)java程序的跨平臺(tái)。

1.3 JRE和JDK(記憶)

JVM(Java Virtual Machine),Java虛擬機(jī)

JRE(Java Runtime Environment),Java運(yùn)行環(huán)境,包含了JVM和Java的核心類庫(kù)(Java API)

JDK(Java Development Kit)稱為Java開發(fā)工具,包含了JRE和開發(fā)工具

 

總結(jié):我們只需安裝JDK即可,它包含了java的運(yùn)行環(huán)境和虛擬機(jī)。

1.4 JDK的下載和安裝(應(yīng)用)
1.4.1 下載

通過(guò)官方網(wǎng)站獲取JDK

http://www.oracle.com

注意:針對(duì)不同的操作系統(tǒng),需要下載對(duì)應(yīng)版本的JDK。

1.4.2 安裝

傻瓜式安裝,下一步即可。但默認(rèn)的安裝路徑是在C:\Program Files下,為方便統(tǒng)一管理建議修改安裝路徑,將與開發(fā)相關(guān)的軟件都安裝到一個(gè)目錄下,例如:E:\develop。

注意:安裝路徑不要包含中文或者空格等特殊字符(使用純英文目錄)。

1.4.3 JDK的安裝目錄介紹
目錄名稱 說(shuō)明
bin 該路徑下存放了JDK的各種工具命令。javac和java就放在這個(gè)目錄。
conf 該路徑下存放了JDK的相關(guān)配置文件。
include 該路徑下存放了一些平臺(tái)特定的頭文件。
jmods 該路徑下存放了JDK的各種模塊。
legal 該路徑下存放了JDK各模塊的授權(quán)文檔。
lib 該路徑下存放了JDK工具的一些補(bǔ)充JAR包。

2. 第一個(gè)演示程序

2.1 常用DOS命令(應(yīng)用)

在接觸集成開發(fā)環(huán)境之前,我們需要使用命令行窗口對(duì)java程序進(jìn)行編譯和運(yùn)行,所以需要知道一些常用DOS命令。

1、打開命令行窗口的方式:win + r打開運(yùn)行窗口,輸入cmd,回車。

 

2、常用命令及其作用

操作 說(shuō)明
盤符名稱: 盤符切換。E:回車,表示切換到E盤。
dir 查看當(dāng)前路徑下的內(nèi)容。
cd 目錄 進(jìn)入單級(jí)目錄。cd wedu
cd .. 回退到上一級(jí)目錄。
cd 目錄1\目錄2... 進(jìn)入多級(jí)目錄。cd wedu\JavaSE
cd \ 回退到盤符目錄。
cls 清屏。
exit 退出命令提示符窗口。
2.2 Path環(huán)境變量的配置(應(yīng)用)
2.2.1 為什么配置環(huán)境變量

開發(fā)Java程序,需要使用JDK提供的開發(fā)工具(比如javac.exe、java.exe等命令),而這些工具在JDK的安裝目錄的bin目錄下,如果不配置環(huán)境變量,那么這些命令只可以在該目錄下執(zhí)行。我們不可能把所有的java文件都放到JDK的bin目錄下,所以配置環(huán)境變量的作用就是可以使bin目錄下的java相關(guān)命令可以在任意目錄下使用。

2.3 HelloWorld案例(應(yīng)用)

HelloWorld案例是指在計(jì)算機(jī)屏幕上輸出“HelloWorld”這行文字。

各種計(jì)算機(jī)語(yǔ)言都習(xí)慣使用該案例作為第一個(gè)演示案例。

2.3.1 Java程序開發(fā)運(yùn)行流程

開發(fā)Java程序,需要三個(gè)步驟:編寫程序,編譯程序,運(yùn)行程序。

2.3.2 HelloWorld案例的編寫

1、新建文本文檔文件,修改名稱為HelloWorld.java。

2、用記事本打開HelloWorld.java文件,輸寫程序內(nèi)容。

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("HelloWorld");
    }
}
2.3.3 HelloWorld案例的編譯和運(yùn)行

存文件,打開命令行窗口,將目錄切換至java文件所在目錄,編譯java文件生成class文件,運(yùn)行class文件。

編譯:javac 文件名.java

范例:javac HelloWorld.java

執(zhí)行:java 類名

范例:java HelloWorld

 

 

2.4 HelloWorld案例詳解(理解)

 

2.5 HelloWorld案例常見問(wèn)題(理解)
2.5.1 BUG

在電腦系統(tǒng)或程序中,隱藏著的一些未被發(fā)現(xiàn)的缺陷或問(wèn)題統(tǒng)稱為bug(漏洞)。

2.5.2 BUG的解決

1、具備識(shí)別BUG的能力:多看

2、具備分析BUG的能力:多思考,多查資料

3、具備解決BUG的能力:多嘗試,多總結(jié)

2.5.3 HelloWorld案例常見問(wèn)題

1、非法字符問(wèn)題。Java中的符號(hào)都是英文格式的。

2、大小寫問(wèn)題。Java語(yǔ)言對(duì)大小寫敏感(區(qū)分大小寫)。

3、在系統(tǒng)中顯示文件的擴(kuò)展名,避免出現(xiàn)HelloWorld.java.txt文件。

4、編譯命令后的java文件名需要帶文件后綴.java

5、運(yùn)行命令后的class文件名(類名)不帶文件后綴

2.6 Notepad++軟件的安裝和使用(應(yīng)用)
2.6.1 什么要使用Notepad++軟件

Notepad++功能比windows中的自帶記事本功能強(qiáng)大,除了可以用來(lái)制作一般的純文字說(shuō)明文件,也十分適合編寫計(jì)算機(jī)程序代碼。Notepad++有行號(hào),能夠快速定位問(wèn)題位置,還有語(yǔ)法高亮度顯示、代碼折疊等功能。而且它是免費(fèi)的。

2.6.2 Notepad++軟件安裝

安裝:傻瓜式安裝,一直下一步即可。建議也安裝到統(tǒng)一的開發(fā)軟件目錄下,比如E:\develop。

2.6.3Notepad++軟件配置

安裝完畢之后,為了使用方便,做一個(gè)簡(jiǎn)單的配置:修改默認(rèn)語(yǔ)言和編碼。

3. java基礎(chǔ)語(yǔ)法

3.1 注釋(理解)

注釋是對(duì)代碼的解釋和說(shuō)明文字,可以提高程序的可讀性,因此在程序中添加必要的注釋文字十分重要。Java中的注釋分為三種:

單行注釋。單行注釋的格式是使用//,從//開始至本行結(jié)尾的文字將作為注釋文字。

// 這是單行注釋文字

多行注釋。多行注釋的格式是使用/* 和 */將一段較長(zhǎng)的注釋括起來(lái)。

/*
這是多行注釋文字
這是多行注釋文字
這是多行注釋文字
*/
注意:多行注釋不能嵌套使用。

文檔注釋。文檔注釋以/**開始,以*/結(jié)束。

3.2 關(guān)鍵字(理解)

關(guān)鍵字是指被java語(yǔ)言賦予了特殊含義的單詞。

關(guān)鍵字的特點(diǎn):

關(guān)鍵字的字母全部小寫。

常用的代碼編輯器對(duì)關(guān)鍵字都有高亮顯示,比如現(xiàn)在我們能看到的public、class、static等。

3.3 常量(應(yīng)用)

常量:在程序運(yùn)行過(guò)程中,其值不可以發(fā)生改變的量。

Java中的常量分類:

字符串常量 用雙引號(hào)括起來(lái)的多個(gè)字符(可以包含0個(gè)、一個(gè)或多個(gè)),例如"a"、"abc"、"中國(guó)"等

整數(shù)常量 整數(shù),例如:-10、0、88等

小數(shù)常量 小數(shù),例如:-5.5、1.0、88.88等

字符常量 用單引號(hào)括起來(lái)的一個(gè)字符,例如:'a'、'5'、'B'、'中'等

布爾常量 布爾值,表示真假,只有兩個(gè)值true和false

空常量 一個(gè)特殊的值,空值,值為null

除空常量外,其他常量均可使用輸出語(yǔ)句直接輸出。

public class Demo {
    public static void main(String[] args) {
        System.out.println(10); // 輸出一個(gè)整數(shù)
        System.out.println(5.5); // 輸出一個(gè)小數(shù)
        System.out.println('a'); // 輸出一個(gè)字符
        System.out.println(true); // 輸出boolean值true
        System.out.println("歡迎來(lái)到中科文峰"); // 輸出字符串
    }
}

3.4 變量的介紹(理解)

變量的定義格式:

數(shù)據(jù)類型 變量名 = 數(shù)據(jù)值;

數(shù)據(jù)類型:為空間中存儲(chǔ)的數(shù)據(jù)加入類型限制。整數(shù)?小數(shù)?

變量名:自己要為空間起的名字,沒有難度

數(shù)據(jù)值: 空間中要存儲(chǔ)的數(shù)值,沒有難度

3.5 數(shù)據(jù)類型(應(yīng)用)
3.5.1 計(jì)算機(jī)存儲(chǔ)單元

我們知道計(jì)算機(jī)是可以用來(lái)存儲(chǔ)數(shù)據(jù)的,但是無(wú)論是內(nèi)存還是硬盤,計(jì)算機(jī)存儲(chǔ)設(shè)備的最小信息單元叫“位(bit)”,我們又稱之為“比特位”,通常用小寫的字母”b”表示。而計(jì)算機(jī)中最基本的存儲(chǔ)單元叫“字節(jié)(byte)”,

通常用大寫字母”B”表示,字節(jié)是由連續(xù)的8個(gè)位組成。

除了字節(jié)外還有一些常用的存儲(chǔ)單位,其換算單位如下:

1B(字節(jié)) = 8bit

1KB = 1024B

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

3.5.2 Java中的數(shù)據(jù)類型

Java是一個(gè)強(qiáng)類型語(yǔ)言,Java中的數(shù)據(jù)必須明確數(shù)據(jù)類型。在Java中的數(shù)據(jù)類型包括基本數(shù)據(jù)類型和引用數(shù)據(jù)類型兩種。

Java中的基本數(shù)據(jù)類型:

數(shù)據(jù)類型 關(guān)鍵字 內(nèi)存占用 取值范圍
整數(shù)類型 byte 1 -128~127
short 2 -32768~32767
int(默認(rèn)) 4 -2的31次方到2的31次方-1
long 8 -2的63次方到2的63次方-1
浮點(diǎn)類型 float 4 負(fù)數(shù):-3.402823E+38到-1.401298E-45 正數(shù): 1.401298E-45到3.402823E+38
double(默認(rèn)) 8 負(fù)數(shù):-1.797693E+308到-4.9000000E-324 正數(shù):4.9000000E-324 到1.797693E+308
字符類型 char 2 0-65535
布爾類型 boolean 1 true,false

說(shuō)明:

e+38表示是乘以10的38次方,同樣,e-45表示乘以10的負(fù)45次方。

在java中整數(shù)默認(rèn)是int類型,浮點(diǎn)數(shù)默認(rèn)是double類型。

3.6 變量(應(yīng)用)
3.6.1 變量的定義

變量:在程序運(yùn)行過(guò)程中,其值可以發(fā)生改變的量。

從本質(zhì)上講,變量是內(nèi)存中的一小塊區(qū)域,其值可以在一定范圍內(nèi)變化。

變量的定義格式:

數(shù)據(jù)類型 變量名 = 初始化值; // 聲明變量并賦值
int age = 18;
System.out.println(age);

或者(擴(kuò)展)

// 先聲明,后賦值(使用前賦值即可)
數(shù)據(jù)類型 變量名;
變量名 = 初始化值;
double money;
money = 55.5;
System.out.println(money);

還可以(擴(kuò)展)

在同一行定義多個(gè)同一種數(shù)據(jù)類型的變量,中間使用逗號(hào)隔開。但不建議使用這種方式,降低程序的可讀性。

int a = 10, b = 20; // 定義int類型的變量a和b,中間使用逗號(hào)隔開
System.out.println(a);
System.out.println(b);
​
int c,d; // 聲明int類型的變量c和d,中間使用逗號(hào)隔開
c = 30;
d = 40;
System.out.println(c);
System.out.println(d);
3.6.2 變量的修改
int a = 10;
a = 30;  //修改變量的值
System.out.println(a);

變量前面不加數(shù)據(jù)類型時(shí),表示修改已存在的變量的值。

3.7 變量的注意事項(xiàng)(理解)
  1. 在同一對(duì)花括號(hào)中,變量名不能重復(fù)。

  2. 變量在使用之前,必須初始化(賦值)。

  3. 定義long類型的變量時(shí),需要在整數(shù)的后面加L(大小寫均可,建議大寫)。因?yàn)檎麛?shù)默認(rèn)是int類型,整數(shù)太大可能超出int范圍。

  4. 定義float類型的變量時(shí),需要在小數(shù)的后面加F(大小寫均可,建議大寫)。因?yàn)楦↑c(diǎn)數(shù)的默認(rèn)類型是double, double的取值范圍是大于float的,類型不兼容。

3.8 鍵盤錄入(理解)

我們可以通過(guò) Scanner 類來(lái)獲取用戶的輸入。使用步驟如下:

1、導(dǎo)包。Scanner 類在java.util包下,所以需要將該類導(dǎo)入。導(dǎo)包的語(yǔ)句需要定義在類的上面。

import java.util.Scanner; 

2、創(chuàng)建Scanner對(duì)象。

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

3、接收數(shù)據(jù)

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

示例:

import java.util.Scanner;
public class ScannerDemo {
    public static void main(String[] args) {
        //創(chuàng)建對(duì)象
        Scanner sc = new Scanner(System.in);
        //接收數(shù)據(jù)
        int a = sc.nextInt();
        //輸出數(shù)據(jù)
        System.out.println(a);
    }
}
3.9 標(biāo)識(shí)符(理解)

標(biāo)識(shí)符是用戶編程時(shí)使用的名字,用于給類、方法、變量、常量等命名。

Java中標(biāo)識(shí)符的組成規(guī)則:

由字母、數(shù)字、下劃線“_”、美元符號(hào)“$”組成,第一個(gè)字符不能是數(shù)字。

不能使用java中的關(guān)鍵字作為標(biāo)識(shí)符。

標(biāo)識(shí)符對(duì)大小寫敏感(區(qū)分大小寫)。

Java中標(biāo)識(shí)符的命名約定:

小駝峰式命名:變量名、方法名

首字母小寫,從第二個(gè)單詞開始每個(gè)單詞的首字母大寫。

大駝峰式命名:類名

每個(gè)單詞的首字母都大寫。

另外,標(biāo)識(shí)符的命名最好可以做到見名知意

例如:username、studentNumber等。

4 類型轉(zhuǎn)換

在Java中,一些數(shù)據(jù)類型之間是可以相互轉(zhuǎn)換的。分為兩種情況:自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。

4.1 隱式轉(zhuǎn)換(理解)

把一個(gè)表示數(shù)據(jù)范圍小的數(shù)值或者變量賦值給另一個(gè)表示數(shù)據(jù)范圍大的變量。這種轉(zhuǎn)換方式是自動(dòng)的,直接書寫即可。例如:

double num = 10; // 將int類型的10直接賦值給double類型
System.out.println(num); // 輸出10.0

類型從小到大關(guān)系圖:

 

說(shuō)明:

  1. 整數(shù)默認(rèn)是int類型,byte、short和char類型數(shù)據(jù)參與運(yùn)算均會(huì)自動(dòng)轉(zhuǎn)換為int類型。

byte b1 = 10;
byte b2 = 20;
byte b3 = b1 + b2; 
// 第三行代碼會(huì)報(bào)錯(cuò),b1和b2會(huì)自動(dòng)轉(zhuǎn)換為int類型,計(jì)算結(jié)果為int,int賦值給byte需要強(qiáng)制類型轉(zhuǎn)換。
// 修改為:
int num = b1 + b2;
// 或者:
byte b3 = (byte) (b1 + b2);

2. boolean類型不能與其他基本數(shù)據(jù)類型相互轉(zhuǎn)換。

4.2 強(qiáng)制轉(zhuǎn)換(理解)

把一個(gè)表示數(shù)據(jù)范圍大的數(shù)值或者變量賦值給另一個(gè)表示數(shù)據(jù)范圍小的變量。

強(qiáng)制類型轉(zhuǎn)換格式:目標(biāo)數(shù)據(jù)類型 變量名 = (目標(biāo)數(shù)據(jù)類型)值或者變量;

例如:

double num1 = 5.5;
int num2 = (int) num1; // 將double類型的num1強(qiáng)制轉(zhuǎn)換為int類型
System.out.println(num2); // 輸出5(小數(shù)位直接舍棄)

4.3 類型轉(zhuǎn)換案例(理解)

案例代碼:

byte a = 3;
byte b = 4;
byte c = a + b; //錯(cuò)誤。因?yàn)閮蓚(gè)byte變量相加,會(huì)先提升為int類型
byte d = 3 + 4; //正確。常量?jī)?yōu)化機(jī)制

常量?jī)?yōu)化機(jī)制:

在編譯時(shí),整數(shù)常量的計(jì)算會(huì)直接算出結(jié)果,并且會(huì)自動(dòng)判斷該結(jié)果是否在byte取值范圍內(nèi),

在:編譯通過(guò)

    不在:編譯失敗

5. 運(yùn)算符

5.1 算術(shù)運(yùn)算符
5.1.1 運(yùn)算符和表達(dá)式(了解)

運(yùn)算符:對(duì)常量或者變量進(jìn)行操作的符號(hào)

表達(dá)式:用運(yùn)算符把常量或者變量連接起來(lái)符合java語(yǔ)法的式子就可以稱為表達(dá)式。

不同運(yùn)算符連接的表達(dá)式體現(xiàn)的是不同類型的表達(dá)式。

舉例說(shuō)明:

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

+:是運(yùn)算符,并且是算術(shù)運(yùn)算符。

a + b:是表達(dá)式,由于+是算術(shù)運(yùn)算符,所以這個(gè)表達(dá)式叫算術(shù)表達(dá)式。

5.1.2 算術(shù)運(yùn)算符(應(yīng)用)
符號(hào) 作用 說(shuō)明
+ 參看小學(xué)一年級(jí)
- 參看小學(xué)一年級(jí)
* 參看小學(xué)二年級(jí),與“×”相同
/ 參看小學(xué)二年級(jí),與“÷”相同
% 取余 獲取的是兩個(gè)數(shù)據(jù)做除法的余數(shù)

注意:

  1. /和%的區(qū)別:兩個(gè)數(shù)據(jù)做除法,/取結(jié)果的商,%取結(jié)果的余數(shù)。

  2. 整數(shù)操作只能得到整數(shù),要想得到小數(shù),必須有浮點(diǎn)數(shù)參與運(yùn)算。

int a = 10;
int b = 3;
System.out.println(a / b); // 輸出結(jié)果3
System.out.println(a % b); // 輸出結(jié)果1
5.1.3 字符的“+”操作(理解)

char類型參與算術(shù)運(yùn)算,使用的是計(jì)算機(jī)底層對(duì)應(yīng)的十進(jìn)制數(shù)值。需要我們記住三個(gè)字符對(duì)應(yīng)的數(shù)值:

'a' -- 97 a-z是連續(xù)的,所以'b'對(duì)應(yīng)的數(shù)值是98,'c'是99,依次遞加

'A' -- 65 A-Z是連續(xù)的,所以'B'對(duì)應(yīng)的數(shù)值是66,'C'是67,依次遞加

'0' -- 48 0-9是連續(xù)的,所以'1'對(duì)應(yīng)的數(shù)值是49,'2'是50,依次遞加

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

算術(shù)表達(dá)式中包含不同的基本數(shù)據(jù)類型的值的時(shí)候,整個(gè)算術(shù)表達(dá)式的類型會(huì)自動(dòng)進(jìn)行提升。

提升規(guī)則:

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

整個(gè)表達(dá)式的類型自動(dòng)提升到與表達(dá)式中最高等級(jí)的操作數(shù)相同的類型

等級(jí)順序:byte,short,char --> int --> long --> float --> double

例如:

byte b1 = 10;
byte b2 = 20;
// byte b3 = b1 + b2; // 該行報(bào)錯(cuò),因?yàn)閎yte類型參與算術(shù)運(yùn)算會(huì)自動(dòng)提示為int,int賦值給byte可能損失精度
int i3 = b1 + b2; // 應(yīng)該使用int接收
byte b3 = (byte) (b1 + b2); // 或者將結(jié)果強(qiáng)制轉(zhuǎn)換為byte類型
-------------------------------
int num1 = 10;
double num2 = 20.0;
double num3 = num1 + num2; // 使用double接收,因?yàn)閚um1會(huì)自動(dòng)提升為double類型
5.1.4 字符串的“+”操作(理解)

當(dāng)“+”操作中出現(xiàn)字符串時(shí),這個(gè)”+”是字符串連接符,而不是算術(shù)運(yùn)算。

System.out.println("wedu"+ 666); // 輸出:wedu666

在”+”操作中,如果出現(xiàn)了字符串,就是連接運(yùn)算符,否則就是算術(shù)運(yùn)算。當(dāng)連續(xù)進(jìn)行“+”操作時(shí),從左到右逐個(gè)執(zhí)行。

System.out.println(1 + 99 + "年文峰");            // 輸出:100年文峰
System.out.println(1 + 2 + "wedu" + 3 + 4);   // 輸出:3wedu34
// 可以使用小括號(hào)改變運(yùn)算的優(yōu)先級(jí) 
System.out.println(1 + 2 + "wedu" + (3 + 4)); // 輸出:3wedu7
5.1.5 數(shù)值拆分(應(yīng)用)

需求:

鍵盤錄入一個(gè)三位數(shù),將其拆分為個(gè)位,十位,百位,打印在控制臺(tái)

示例代碼:

import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        // 1:使用Scanner鍵盤錄入一個(gè)三位數(shù)
        Scanner sc = new Scanner(System.in);
        System.out.println("請(qǐng)輸入一個(gè)三位數(shù)");
        int num = sc.nextInt();
        // 2:個(gè)位的計(jì)算:數(shù)值 % 10
        int ge = num % 10;      
        // 3:十位的計(jì)算:數(shù)值 / 10 % 10
        int shi = num / 10 % 10;    
        // 4:百位的計(jì)算:數(shù)值 / 100
        int bai = num / 100;
        // 5:將個(gè)位, 十位, 百位拼接上正確的字符串, 打印即可
        System.out.println("整數(shù)"+num+"個(gè)位為:" + ge);
        System.out.println("整數(shù)"+num+"十位為:" + shi);
        System.out.println("整數(shù)"+num+"百位為:" + bai);
    }
}

5.2 自增自減運(yùn)算符(理解)
符號(hào) 作用 說(shuō)明
++ 自增 變量的值加1
-- 自減 變量的值減1

注意事項(xiàng):

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

單獨(dú)使用的時(shí)候, ++和-- 無(wú)論是放在變量的前邊還是后邊,結(jié)果是一樣的。

參與操作的時(shí)候,如果放在變量的后邊,先拿變量參與操作,后拿變量做++或者--。

參與操作的時(shí)候,如果放在變量的前邊,先拿變量做++或者--,后拿變量參與操作。

最常見的用法:?jiǎn)为?dú)使用。

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

練習(xí):

int x = 10;
int y = x++ + x++ + x++;
System.out.println(y); // y的值是多少?
/*
解析,三個(gè)表達(dá)式都是++在后,所以每次使用的都是自增前的值,但程序自左至右執(zhí)行,所以第一次自增時(shí),使用的是10進(jìn)行計(jì)算,但第二次自增時(shí),x的值已經(jīng)自增到11了,所以第二次使用的是11,然后再次自增。。。
所以整個(gè)式子應(yīng)該是:int y = 10 + 11 + 12;
輸出結(jié)果為33。
*/
注意:通過(guò)此練習(xí)深刻理解自增和自減的規(guī)律,但實(shí)際開發(fā)中強(qiáng)烈建議不要寫這樣的代碼!小心挨打!
5.3 賦值運(yùn)算符(應(yīng)用)

賦值運(yùn)算符的作用是將一個(gè)表達(dá)式的值賦給左邊,左邊必須是可修改的,不能是常量。

符號(hào) 作用 說(shuō)明
= 賦值 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的余數(shù)給a

注意:

擴(kuò)展的賦值運(yùn)算符隱含了強(qiáng)制類型轉(zhuǎn)換

short s = 10;
s = s + 10; // 此行代碼報(bào)出,因?yàn)檫\(yùn)算中s提升為int類型,運(yùn)算結(jié)果int賦值給short可能損失精度
​
s += 10; // 此行代碼沒有問(wèn)題,隱含了強(qiáng)制類型轉(zhuǎn)換,相當(dāng)于 s = (short) (s + 10);
5.4 關(guān)系運(yùn)算符(應(yīng)用)

關(guān)系運(yùn)算符有6種關(guān)系,分別為小于、小于等于、大于、等于、大于等于、不等于。

符號(hào) 說(shuō)明
== 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

注意事項(xiàng):

關(guān)系運(yùn)算符的結(jié)果都是boolean類型,要么是true,要么是false。

千萬(wàn)不要把“==”誤寫成“=”,"=="是判斷是否相等的關(guān)系,"="是賦值。

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
​
// 關(guān)系運(yùn)算的結(jié)果肯定是boolean類型,所以也可以將運(yùn)算結(jié)果賦值給boolean類型的變量
boolean flag = a > b;
System.out.println(flag); // 輸出false
5.5 邏輯運(yùn)算符(應(yīng)用)

邏輯運(yùn)算符把各個(gè)運(yùn)算的關(guān)系表達(dá)式連接起來(lái)組成一個(gè)復(fù)雜的邏輯表達(dá)式,以判斷程序中的表達(dá)式是否成立,判斷的結(jié)果是 true 或 false。

符號(hào) 作用 說(shuō)明
& 邏輯與 a&b,a和b都是true,結(jié)果為true,否則為false
| 邏輯或 a|b,a和b都是false,結(jié)果為false,否則為true
^ 邏輯異或 a^b,a和b結(jié)果不同為true,相同為false
! 邏輯非 !a,結(jié)果和a的結(jié)果正好相反
//定義變量
int i = 10;
int j = 20;
int k = 30;
​
//& “與”,并且的關(guān)系,只要表達(dá)式中有一個(gè)值為false,結(jié)果即為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("--------");
​
//| “或”,或者的關(guān)系,只要表達(dá)式中有一個(gè)值為true,結(jié)果即為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
5.6 短路邏輯運(yùn)算符(理解)
符號(hào) 作用 說(shuō)明
&& 短路與 作用和&相同,但是有短路效果
|| 短路或 作用和|相同,但是有短路效果

在邏輯與運(yùn)算中,只要有一個(gè)表達(dá)式的值為false,那么結(jié)果就可以判定為false了,沒有必要將所有表達(dá)式的值都計(jì)算出來(lái),短路與操作就有這樣的效果,可以提高效率。同理在邏輯或運(yùn)算中,一旦發(fā)現(xiàn)值為true,右邊的表達(dá)式將不再參與運(yùn)算。

  • 邏輯與&,無(wú)論左邊真假,右邊都要執(zhí)行。

  • 短路與&&,如果左邊為真,右邊執(zhí)行;如果左邊為假,右邊不執(zhí)行。

  • 邏輯或|,無(wú)論左邊真假,右邊都要執(zhí)行。

  • 短路或||,如果左邊為假,右邊執(zhí)行;如果左邊為真,右邊不執(zhí)行。

int x = 3;
int y = 4;
System.out.println((x++ > 4) & (y++ > 5)); // 兩個(gè)表達(dá)都會(huì)運(yùn)算
System.out.println(x); // 4
System.out.println(y); // 5
System.out.println((x++ > 4) && (y++ > 5)); // 左邊已經(jīng)可以確定結(jié)果為false,右邊不參與運(yùn)算
System.out.println(x); // 4
System.out.println(y); // 4
5.7 三元運(yùn)算符(理解)

三元運(yùn)算符語(yǔ)法格式:

關(guān)系表達(dá)式 ? 表達(dá)式1 : 表達(dá)式2;

解釋:?jiǎn)柼?hào)前面的位置是判斷的條件,判斷結(jié)果為boolean型,為true時(shí)調(diào)用表達(dá)式1,為false時(shí)調(diào)用表達(dá)式2。其邏輯為:如果條件表達(dá)式成立或者滿足則執(zhí)行表達(dá)式1,否則執(zhí)行第二個(gè)。

舉例:

int a = 10;
int b = 20;
int c = a > b ? a : b; // 判斷 a>b 是否為真,如果為真取a的值,如果為假,取b的值
5.8 三元運(yùn)算符案例(應(yīng)用)

需求:

一座寺廟里住著三個(gè)和尚,已知他們的身高分別為150cm、210cm、165cm,請(qǐng)用程序?qū)崿F(xiàn)獲取這三個(gè)和尚的最高身高。

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

6. 流程控制語(yǔ)句

在一個(gè)程序執(zhí)行的過(guò)程中,各條語(yǔ)句的執(zhí)行順序?qū)Τ绦虻慕Y(jié)果是有直接影響的。所以,我們必須清楚每條語(yǔ)句的執(zhí)行流程。而且,很多時(shí)候要通過(guò)控制語(yǔ)句的執(zhí)行順序來(lái)實(shí)現(xiàn)我們想要的功能。

6.1 流程控制語(yǔ)句分類(了解)

順序結(jié)構(gòu)

分支結(jié)構(gòu)(if, switch)

循環(huán)結(jié)構(gòu)(for, while, do…while)

6.2 順序結(jié)構(gòu)(了解)

順序結(jié)構(gòu)是程序中最簡(jiǎn)單最基本的流程控制,沒有特定的語(yǔ)法結(jié)構(gòu),按照代碼的先后順序,依次執(zhí)行,程序中大多數(shù)的代碼都是這樣執(zhí)行的。

順序結(jié)構(gòu)執(zhí)行流程圖:

 

6.3 分支結(jié)構(gòu)之if語(yǔ)句
6.3.1 if語(yǔ)句格式1(理解)
格式:
if (關(guān)系表達(dá)式) {
    語(yǔ)句體; 
}

執(zhí)行流程:

①首先計(jì)算關(guān)系表達(dá)式的值

②如果關(guān)系表達(dá)式的值為true就執(zhí)行語(yǔ)句體

③如果關(guān)系表達(dá)式的值為false就不執(zhí)行語(yǔ)句體

④繼續(xù)執(zhí)行后面的語(yǔ)句內(nèi)容

 

示例:

public class IfDemo {
 public static void main(String[] args) {
  System.out.println("開始");
  // 如果年齡大于18歲, 就可以上網(wǎng)吧
  int age = 17;
  if(age >= 18){
   // int a = 10;
   System.out.println("可以上網(wǎng)吧");
  }
  System.out.println("結(jié)束");
 }
}

6.3.2 if語(yǔ)句格式2(理解)
格式:
if (關(guān)系表達(dá)式) {
    語(yǔ)句體1; 
} else {
    語(yǔ)句體2; 
}

執(zhí)行流程:

①首先計(jì)算關(guān)系表達(dá)式的值

②如果關(guān)系表達(dá)式的值為true就執(zhí)行語(yǔ)句體1

③如果關(guān)系表達(dá)式的值為false就執(zhí)行語(yǔ)句體2

④繼續(xù)執(zhí)行后面的語(yǔ)句內(nèi)容

 

示例:奇偶數(shù)

任意給出一個(gè)整數(shù),請(qǐng)用程序?qū)崿F(xiàn)判斷該整數(shù)是奇數(shù)還是偶數(shù),并在控制臺(tái)輸出該整數(shù)是奇數(shù)還是偶數(shù)。

public class Demo2If {
 public static void main(String[] args) {
  // 程序判斷一個(gè)數(shù), 是奇數(shù)還是偶數(shù)
  int num = 9;
  if(num % 2 == 0){
   System.out.println("偶數(shù)");
  }else{
   System.out.println("奇數(shù)");
  }
 }
}

6.3.3 if語(yǔ)句格式3(理解)
格式:
if (關(guān)系表達(dá)式1) {
    語(yǔ)句體1; 
} else if (關(guān)系表達(dá)式2) {
    語(yǔ)句體2; 
} 
…
else {
    語(yǔ)句體n+1;
}

執(zhí)行流程:

①首先計(jì)算關(guān)系表達(dá)式1的值

②如果值為true就執(zhí)行語(yǔ)句體1;如果值為false就計(jì)算關(guān)系表達(dá)式2的值

③如果值為true就執(zhí)行語(yǔ)句體2;如果值為false就計(jì)算關(guān)系表達(dá)式3的值

④…

⑤如果沒有任何關(guān)系表達(dá)式為true,就執(zhí)行語(yǔ)句體n+1。

 

示例:

定義一個(gè)在0~100之間的變量a, 90~100優(yōu)秀,80~89良好,70~79中等,60~69及格,0~59請(qǐng)努力加油!

public class Demo3If {
 public static void main(String[] args){
  int score = 65;
  if(score >= 90 && score <= 100){
   System.out.println("優(yōu)秀");
  }else if (score >= 80 && score <= 89){
   System.out.println("良好");
  }else if (score >= 70 && score <= 79){
   System.out.println("中等");
  }else if (score >= 60 && score <= 69){
   System.out.println("及格");
  }else if (score >= 0 && score <= 59){
   System.out.println("請(qǐng)努力加油");
  }else{
   System.out.println("成績(jī)有誤!");
  }
 }
}

6.3.4 if語(yǔ)句格式3案例(應(yīng)用)

需求:小明快要期末考試了,小明爸爸對(duì)他說(shuō),會(huì)根據(jù)他不同的考試成績(jī),送他不同的禮物,假如你可以控制小明的得分,請(qǐng)用程序?qū)崿F(xiàn)小明到底該獲得什么樣的禮物,并在控制臺(tái)輸出。

分析:

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

②由于獎(jiǎng)勵(lì)種類較多,屬于多種判斷,采用if...else...if格式實(shí)現(xiàn)

③為每種判斷設(shè)置對(duì)應(yīng)的條件

④為每種判斷設(shè)置對(duì)應(yīng)的獎(jiǎng)勵(lì)

import java.util.Scanner;
public class IfTest02 {
    public static void main(String[] args){
        // 1. 使用Scanner錄入考試成績(jī)
        Scanner sc = new Scanner(System.in);
        System.out.println("請(qǐng)輸入您的成績(jī):");
        int score = sc.nextInt();
        // 2. 判斷成績(jī)是否在合法范圍內(nèi) 0~100
        if(score >=0 && score <= 100){
            // 合法成績(jī)
            // 3. 在合法的語(yǔ)句塊中判斷成績(jī)范圍符合哪一個(gè)獎(jiǎng)勵(lì)
            if(score >= 95 && score <= 100){
                System.out.println("自行車一輛");
            }else if(score >= 90 && score <= 94){
                System.out.println("游樂場(chǎng)一次");
            }else if(score >= 80 && score <= 89){
                System.out.println("變形金剛一個(gè)");
            }else {
                System.out.println("挨頓揍, 這座城市又多了一個(gè)傷心的人~");
            }
        }else{
            // 非法的話, 給出錯(cuò)誤提示
            System.out.println("您的成績(jī)輸入有誤!");
        }
    }
}

7. switch語(yǔ)句

7.1 分支語(yǔ)句switch語(yǔ)句
  • 格式

    switch (表達(dá)式) {
        case 1:
            語(yǔ)句體1;
            break;
        case 2:
            語(yǔ)句體2;
            break;
        ...
        default:
            語(yǔ)句體n+1;
            break;
    }
  • 執(zhí)行流程:

    • 首先計(jì)算出表達(dá)式的值

    • 其次,和case依次比較,一旦有對(duì)應(yīng)的值,就會(huì)執(zhí)行相應(yīng)的語(yǔ)句,在執(zhí)行的過(guò)程中,遇到break就會(huì)結(jié) 束。

    • 最后,如果所有的case都和表達(dá)式的值不匹配,就會(huì)執(zhí)行default語(yǔ)句體部分,然后程序結(jié)束掉。

7.2 switch案例-減肥計(jì)劃
  • 需求:鍵盤錄入星期數(shù),顯示今天的減肥活動(dòng)

周一:跑步  
周二:游泳  
周三:慢走  
周四:動(dòng)感單車
周五:拳擊  
周六:爬山  
周日:好好吃一頓 
  • 示例代碼:

public static void main(String[] args){
        // 1. 鍵盤錄入星期數(shù)據(jù),使用變量接收
        Scanner sc = new Scanner(System.in);
        System.out.println("請(qǐng)輸入");
        int week = sc.nextInt();
        // 2. 多情況判斷,采用switch語(yǔ)句實(shí)現(xiàn)
        switch(week){
            // 3. 在不同的case中,輸出對(duì)應(yīng)的減肥計(jì)劃
            case 1:
                System.out.println("跑步");
                break;
            case 2:
                System.out.println("游泳");
                break;
            case 3:
                System.out.println("慢走");
                break;
            case 4:
                System.out.println("動(dòng)感單車");
                break;
            case 5:
                System.out.println("拳擊");
                break;
            case 6:
                System.out.println("爬山");
                break;
            case 7:
                System.out.println("好好吃一頓");
                break;
            default:
                System.out.println("您的輸入有誤");
                break;
        }
    }
}
7.3 switch語(yǔ)句case穿透
  • 概述 : 如果switch語(yǔ)句中,case省略了break語(yǔ)句, 就會(huì)開始case穿透

  • 需求 : 鍵盤錄入星期數(shù),輸出工作日、休息日 (1-5)工作日,(6-7)休息日

  • 示例代碼:

/*
case穿透是如何產(chǎn)生的?
        如果switch語(yǔ)句中,case省略了break語(yǔ)句, 就會(huì)開始case穿透.
        現(xiàn)象:
            當(dāng)開始case穿透,后續(xù)的case就不會(huì)具有匹配效果,內(nèi)部的語(yǔ)句都會(huì)執(zhí)行
            直到看見break,或者將整體switch語(yǔ)句執(zhí)行完畢,才會(huì)結(jié)束。
*/
public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("請(qǐng)輸入星期數(shù):");
        int week = sc.nextInt();
        switch(week){
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println("工作日");
                break;
            case 6:
            case 7:
                System.out.println("休息日");
                break;
            default:
                System.out.println("您的輸入有誤");
                break;
        }
    }   
}

8. for循環(huán)

8.1 循環(huán)語(yǔ)句-for循環(huán)
  • 循環(huán):

    循環(huán)語(yǔ)句可以在滿足循環(huán)條件的情況下,反復(fù)執(zhí)行某一段代碼,這段被重復(fù)執(zhí)行的代碼被稱為循環(huán)體語(yǔ)句,當(dāng)反復(fù) 執(zhí)行這個(gè)循環(huán)體時(shí),需要在合適的時(shí)候把循環(huán)判斷條件修改為false,從而結(jié)束循環(huán),否則循環(huán)將一直執(zhí)行下去,形 成死循環(huán)。

  • for循環(huán)格式:

for (初始化語(yǔ)句;條件判斷語(yǔ)句;條件控制語(yǔ)句) {
    循環(huán)體語(yǔ)句;
}
  • 格式解釋:

    • 初始化語(yǔ)句: 用于表示循環(huán)開啟時(shí)的起始狀態(tài),簡(jiǎn)單說(shuō)就是循環(huán)開始的時(shí)候什么樣

    • 條件判斷語(yǔ)句:用于表示循環(huán)反復(fù)執(zhí)行的條件,簡(jiǎn)單說(shuō)就是判斷循環(huán)是否能一直執(zhí)行下去

    • 循環(huán)體語(yǔ)句: 用于表示循環(huán)反復(fù)執(zhí)行的內(nèi)容,簡(jiǎn)單說(shuō)就是循環(huán)反復(fù)執(zhí)行的事情

    • 條件控制語(yǔ)句:用于表示循環(huán)執(zhí)行中每次變化的內(nèi)容,簡(jiǎn)單說(shuō)就是控制循環(huán)是否能執(zhí)行下去

  • 執(zhí)行流程:

    ①執(zhí)行初始化語(yǔ)句

    ②執(zhí)行條件判斷語(yǔ)句,看其結(jié)果是true還是false

    如果是false,循環(huán)結(jié)束

    如果是true,繼續(xù)執(zhí)行

    ③執(zhí)行循環(huán)體語(yǔ)句

    ④執(zhí)行條件控制語(yǔ)句

    ⑤回到②繼續(xù)

8.2 for循環(huán)案例-輸出數(shù)據(jù)1-5和5-1
  • 需求:在控制臺(tái)輸出1-5和5-1的數(shù)據(jù)

  • 示例代碼:

public class ForTest01 {
    public static void main(String[] args) {
        //需求:輸出數(shù)據(jù)1-5
        for(int i=1; i<=5; i++) {
            System.out.println(i);
        }
        System.out.println("--------");
        //需求:輸出數(shù)據(jù)5-1
        for(int i=5; i>=1; i--) {
            System.out.println(i);
        }
    }
}

8.3 for循環(huán)案例-求1-5數(shù)據(jù)和
  • 需求:求1-5之間的數(shù)據(jù)和,并把求和結(jié)果在控制臺(tái)輸出

  • 示例代碼:

public class ForTest02 {
    public static void main(String[] args) {
        //求和的最終結(jié)果必須保存起來(lái),需要定義一個(gè)變量,用于保存求和的結(jié)果,初始值為0
        int sum = 0;
        //從1開始到5結(jié)束的數(shù)據(jù),使用循環(huán)結(jié)構(gòu)完成
        for(int i=1; i<=5; i++) {
            //將反復(fù)進(jìn)行的事情寫入循環(huán)結(jié)構(gòu)內(nèi)部
             // 此處反復(fù)進(jìn)行的事情是將數(shù)據(jù) i 加到用于保存最終求和的變量 sum 中
            sum += i;
            /*
                sum += i;   sum = sum + i;
                第一次:sum = sum + i = 0 + 1 = 1;
                第二次:sum = sum + i = 1 + 2 = 3;
                第三次:sum = sum + i = 3 + 3 = 6;
                第四次:sum = sum + i = 6 + 4 = 10;
                第五次:sum = sum + i = 10 + 5 = 15;
            */
        }
        //當(dāng)循環(huán)執(zhí)行完畢時(shí),將最終數(shù)據(jù)打印出來(lái)
        System.out.println("1-5之間的數(shù)據(jù)和是:" + sum);
    }
}
  • 本題要點(diǎn):

    • 今后遇到的需求中,如果帶有求和二字,請(qǐng)立即聯(lián)想到求和變量

    • 求和變量的定義位置,必須在循環(huán)外部,如果在循環(huán)內(nèi)部則計(jì)算出的數(shù)據(jù)將是錯(cuò)誤的

8.4 for循環(huán)案例-求1-100偶數(shù)和
  • 需求:求1-100之間的偶數(shù)和,并把求和結(jié)果在控制臺(tái)輸出 }

  • 示例代碼:

public class ForTest03 {
    public static void main(String[] args) {
        //求和的最終結(jié)果必須保存起來(lái),需要定義一個(gè)變量,用于保存求和的結(jié)果,初始值為0
        int sum = 0;
        //對(duì)1-100的數(shù)據(jù)求和與1-5的數(shù)據(jù)求和幾乎完全一樣,僅僅是結(jié)束條件不同
        for(int i=1; i<=100; i++) {
            //對(duì)1-100的偶數(shù)求和,需要對(duì)求和操作添加限制條件,判斷是否是偶數(shù)
            if(i%2 == 0) {
                sum += i;
            }
        }
        //當(dāng)循環(huán)執(zhí)行完畢時(shí),將最終數(shù)據(jù)打印出來(lái)
        System.out.println("1-100之間的偶數(shù)和是:" + sum);
    }
}

8.5 for循環(huán)案例-水仙花數(shù)
  • 需求:在控制臺(tái)輸出所有的“水仙花數(shù)”

  • 解釋:什么是水仙花數(shù)?

    • 水仙花數(shù),指的是一個(gè)三位數(shù),個(gè)位、十位、百位的數(shù)字立方和等于原數(shù)

      • 例如153 3*3*3 + 5*5*5 + 1*1*1 = 153

  • 思路:

    1. 獲取所有的三位數(shù),準(zhǔn)備進(jìn)行篩選,最小的三位數(shù)為100,最大的三位數(shù)為999,使用for循環(huán)獲取

    2. 獲取每一個(gè)三位數(shù)的個(gè)位,十位,百位,做if語(yǔ)句判斷是否是水仙花數(shù)

  • 示例代碼

public class ForTest04 {
    public static void main(String[] args) {
  //輸出所有的水仙花數(shù)必然要使用到循環(huán),遍歷所有的三位數(shù),三位數(shù)從100開始,到999結(jié)束
  for(int i=100; i<1000; i++) {
   //在計(jì)算之前獲取三位數(shù)中每個(gè)位上的值
   int ge = i%10;
   int shi = i/10%10;
   int bai = i/10/10%10;
   //判定條件是將三位數(shù)中的每個(gè)數(shù)值取出來(lái),計(jì)算立方和后與原始數(shù)字比較是否相等
   if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) {
    //輸出滿足條件的數(shù)字就是水仙花數(shù)
    System.out.println(i);
   }
  }
    }
}

8.6 for循環(huán)案例-每行打印2個(gè)水仙花數(shù)(統(tǒng)計(jì))
  • 需求:在控制臺(tái)輸出所有的“水仙花數(shù)”,要求每行打印2個(gè)

  • 示例代碼:

public class Demo6For {
 /*
  需求:在控制臺(tái)輸出所有的“水仙花數(shù)”,要求每行打印2個(gè)
  System.out.print (打印內(nèi)容); 打印后不換行
  System.out.println(打印內(nèi)容); 打印后換行
  分析:
   1. 定義變量count,用于保存“打印過(guò)”的數(shù)量,初始值為0
   2. 在判定和打印水仙花數(shù)的過(guò)程中,拼接空格, 但不換行,并在打印后讓count變量+1,記錄打印過(guò)的數(shù)量
   3. 在每一次count變量+1后,判斷是否到達(dá)了2的倍數(shù),是的話,換行。
 */
 public static void main(String[] args){
  // 1. 定義變量count,用于保存“打印過(guò)”的數(shù)量,初始值為0
  int count = 0;
  for(int i = 100; i <= 999; i++){
   int ge = i % 10;
   int shi = i / 10 % 10;
   int bai = i / 10 / 10 % 10;
   if( (ge*ge*ge + shi*shi*shi + bai*bai*bai) == i){
    //  2. 在判定和打印水仙花數(shù)的過(guò)程中,拼接空格, 但不換行,并在打印后讓count變量+1,記錄打印過(guò)的數(shù)量
    System.out.print(i + " ");
    count++;
    // 3. 在每一次count變量+1后,判斷是否到達(dá)了2的倍數(shù),是的話,換行
    if(count % 2 == 0){
     System.out.println();
    }
   }
  }
 }
}
  • 本題要點(diǎn):

    • 今后如果需求帶有統(tǒng)計(jì)xxx,請(qǐng)先想到計(jì)數(shù)器變量

    • 計(jì)數(shù)器變量定義的位置,必須在循環(huán)外部

9. while循環(huán)

9.1 循環(huán)語(yǔ)句-while循環(huán)
  • while循環(huán)完整格式:

    初始化語(yǔ)句;
    while (條件判斷語(yǔ)句) {
     循環(huán)體語(yǔ)句;
        條件控制語(yǔ)句;
    }
  • while循環(huán)執(zhí)行流程:

    ①執(zhí)行初始化語(yǔ)句

    ②執(zhí)行條件判斷語(yǔ)句,看其結(jié)果是true還是false

    如果是false,循環(huán)結(jié)束

    如果是true,繼續(xù)執(zhí)行

    ③執(zhí)行循環(huán)體語(yǔ)句

    ④執(zhí)行條件控制語(yǔ)句

    ⑤回到②繼續(xù)

  • 示例代碼:

public class WhileDemo {
    public static void main(String[] args) {
        //需求:在控制臺(tái)輸出5次"HelloWorld"
  //for循環(huán)實(shí)現(xiàn)
  for(int i=1; i<=5; i++) {
   System.out.println("HelloWorld");
  }
  System.out.println("--------");
  //while循環(huán)實(shí)現(xiàn)
  int j = 1;
  while(j<=5) {
   System.out.println("HelloWorld");
   j++;
  }
    }
}

9.2 while循環(huán)案例-珠穆朗瑪峰
  • 需求:世界最高山峰是珠穆朗瑪峰(8844.43米=8844430毫米),假如我有一張足夠大的紙,它的厚度是0.1毫米。請(qǐng)問(wèn),我折疊多少次,可以折成珠穆朗瑪峰的高度?

  • 示例代碼:

public class WhileTest {
    public static void main(String[] args) {
  //定義一個(gè)計(jì)數(shù)器,初始值為0
  int count = 0;
  //定義紙張厚度
  double paper = 0.1;
  //定義珠穆朗瑪峰的高度
  int zf = 8844430;
  //因?yàn)橐磸?fù)折疊,所以要使用循環(huán),但是不知道折疊多少次,這種情況下更適合使用while循環(huán)
  //折疊的過(guò)程中當(dāng)紙張厚度大于珠峰就停止了,因此繼續(xù)執(zhí)行的要求是紙張厚度小于珠峰高度
  while(paper <= zf) {
   //循環(huán)的執(zhí)行過(guò)程中每次紙張折疊,紙張的厚度要加倍
   paper *= 2;
   //在循環(huán)中執(zhí)行累加,對(duì)應(yīng)折疊了多少次
   count++;
  }
  //打印計(jì)數(shù)器的值
  System.out.println("需要折疊:" + count + "次");
    }
}

10. 循環(huán)細(xì)節(jié)

10.1 循環(huán)語(yǔ)句-dowhile循環(huán)
  • 完整格式:

    初始化語(yǔ)句;
    do {
     循環(huán)體語(yǔ)句;
     條件控制語(yǔ)句;
    }while(條件判斷語(yǔ)句);
  • 執(zhí)行流程:

    ① 執(zhí)行初始化語(yǔ)句

    ② 執(zhí)行循環(huán)體語(yǔ)句

    ③ 執(zhí)行條件控制語(yǔ)句

    ④ 執(zhí)行條件判斷語(yǔ)句,看其結(jié)果是true還是false

    如果是false,循環(huán)結(jié)束

    如果是true,繼續(xù)執(zhí)行

    ⑤ 回到②繼續(xù)

  • 示例代碼:

public class DoWhileDemo {
    public static void main(String[] args) {
        //需求:在控制臺(tái)輸出5次"HelloWorld"
  //for循環(huán)實(shí)現(xiàn)
  for(int i=1; i<=5; i++) {
   System.out.println("HelloWorld");
  }
  System.out.println("--------");
  //do...while循環(huán)實(shí)現(xiàn)
  int j = 1;
  do {
   System.out.println("HelloWorld");
   j++;
  }while(j<=5);
    }
}

10.2 三種循環(huán)的區(qū)別
  • 三種循環(huán)的區(qū)別

    • for循環(huán)和while循環(huán)先判斷條件是否成立,然后決定是否執(zhí)行循環(huán)體(先判斷后執(zhí)行)

    • do...while循環(huán)先執(zhí)行一次循環(huán)體,然后判斷條件是否成立,是否繼續(xù)執(zhí)行循環(huán)體(先執(zhí)行后判斷)

  • for循環(huán)和while的區(qū)別

    • 條件控制語(yǔ)句所控制的自增變量,因?yàn)闅w屬for循環(huán)的語(yǔ)法結(jié)構(gòu)中,在for循環(huán)結(jié)束后,就不能再次被訪問(wèn)到了

    • 條件控制語(yǔ)句所控制的自增變量,對(duì)于while循環(huán)來(lái)說(shuō)不歸屬其語(yǔ)法結(jié)構(gòu)中,在while循環(huán)結(jié)束后,該變量還可以繼續(xù)使用

  • 死循環(huán)(無(wú)限循環(huán))的三種格式

    1. for(;;){}

    2. while(true){}

    3. do {} while(true);

10.3 死循環(huán)
  • 死循環(huán)格式

    for死循環(huán)格式 :
    for(;;){
    }
    while死循環(huán)格式 :
    while(true){
    }
    do..while死循環(huán)格式 :
    do{
    }while(true);
  • 死循環(huán)案例

/*
 問(wèn)題: 死循環(huán)有應(yīng)用場(chǎng)景嗎?
    例如: 鍵盤錄入一個(gè)1-100之間的整數(shù)
    顧慮: 鍵盤錄入是用戶操作的, 用戶就可能會(huì)出現(xiàn)一些誤操作的現(xiàn)象
*/
public static void main(String[] args) {
    /*
  for(;;){
   System.out.println("我停不下來(lái)了~");
  }
  */
    /*
  while(true){
   System.out.println("我停不下來(lái)了~");
  }
  */
    do{
        System.out.println("我停不下來(lái)了~"); 
    }while(true);
    System.out.println("看看我能被執(zhí)行嗎?~"); // 無(wú)法訪問(wèn)的語(yǔ)句
}
}

10.4 跳轉(zhuǎn)控制語(yǔ)句
  • 跳轉(zhuǎn)控制語(yǔ)句(break)

    • 跳出循環(huán),結(jié)束循環(huán)

  • 跳轉(zhuǎn)控制語(yǔ)句(continue)

    • 跳過(guò)本次循環(huán),繼續(xù)下次循環(huán)

  • 注意: continue只能在循環(huán)中進(jìn)行使用!

public class Demo1Continue {
 /*
  continue : 跳過(guò)某次循環(huán)體內(nèi)容的執(zhí)行
  注意:使用是基于條件控制, 在循環(huán)內(nèi)部使用.
  需求: 模擬電梯上行的過(guò)程 1-24層, 4層不停.
 */
 public static void main(String[] args){
  for(int i = 1; i <= 24; i++){
   if(i == 4){
    continue;
   }
   System.out.println(i + "層到了~");
  }
 }
}
public class Demo2Break {
 /*
  break : 終止循環(huán)體內(nèi)容的執(zhí)行
  注意:使用是基于條件控制的
    break語(yǔ)句只能在循環(huán)和switch中進(jìn)行使用.
  需求: 模擬20歲工作到80歲, 60歲退休.
 */
 public static void main(String[] args){
  for(int i = 20; i <= 80; i++){
   if(i == 60){
    break;  // 結(jié)束整個(gè)循環(huán)
   }
   System.out.println(i + "歲正在上班");
  }
 }
}
import java.util.Scanner;
public class Test {
 /*
  需求:程序運(yùn)行后,用戶可多次查詢星期對(duì)應(yīng)的減肥計(jì)劃,直到輸入0,程序結(jié)束
  步驟:
   1. 不明確用戶操作幾次, 使用死循環(huán)包裹業(yè)務(wù)邏輯
   2. 匹配到0的時(shí)候,使用break結(jié)束循環(huán)死循環(huán)
 */
 public static void main (String[] args){
  lo:while(true){
   System.out.println("請(qǐng)輸入您要查看的星期數(shù):");
   System.out.println("(如無(wú)需繼續(xù)查看,請(qǐng)輸入0退出程序)");
   // 1. 鍵盤錄入星期數(shù)據(jù),使用變量接收
   Scanner sc = new Scanner(System.in);
   int week = sc.nextInt();
   // 2. 多情況判斷,采用switch語(yǔ)句實(shí)現(xiàn)
   switch(week){
    // 3. 在不同的case中,輸出對(duì)應(yīng)的減肥計(jì)劃
    case 0:
     System.out.println("感謝您的使用");
     break lo;
    case 1:
     System.out.println("跑步");
     break;
    case 2:
     System.out.println("游泳");
     break;
    case 3:
     System.out.println("慢走");
     break;
    case 4:
     System.out.println("動(dòng)感單車");
     break;
    case 5:
     System.out.println("拳擊");
     break;
    case 6:
     System.out.println("爬山");
     break;
    case 7:
     System.out.println("好好吃一頓");
     break;
    default:
     System.out.println("您的輸入有誤");
     break;
   }
  }
 }
}

11. Random

11.1 Random產(chǎn)生隨機(jī)數(shù)(掌握)
  • 概述:

    • Random類似Scanner,也是Java提供好的API,內(nèi)部提供了產(chǎn)生隨機(jī)數(shù)的功能

      • API后續(xù)課程詳細(xì)講解,現(xiàn)在可以簡(jiǎn)單理解為Java已經(jīng)寫好的代碼

  • 使用步驟:

    1. 導(dǎo)入包

      import java.util.Random;

    2. 創(chuàng)建對(duì)象

      Random r = new Random();

    3. 產(chǎn)生隨機(jī)數(shù)

      int num = r.nextInt(10);

      解釋: 10代表的是一個(gè)范圍,如果括號(hào)寫10,產(chǎn)生的隨機(jī)數(shù)就是0-9,括號(hào)寫20,參數(shù)的隨機(jī)數(shù)則是0-19

  • 示例代碼:

import java.util.Random;
public class Demo1Random {
 /*
  Random : 產(chǎn)生隨機(jī)數(shù)
  1. 導(dǎo)包 : import java.util.Random;
        導(dǎo)包的動(dòng)作必須出現(xiàn)在類定義的上面
  2. 創(chuàng)建對(duì)象 : Random r = new Random();
     上面這個(gè)格式里面,r 是變量名,可以變,其他的都不允許變
  3. 獲取隨機(jī)數(shù) : int number = r.nextInt(10); //獲取數(shù)據(jù)的范圍:[0,10) 包括0,不包括10
     上面這個(gè)格式里面,number是變量名,可以變,數(shù)字10可以變。其他的都不允許變
  需求: 產(chǎn)生隨機(jī)數(shù)1-10之間的
 */
 public static void main(String[] args){
  // 2. 創(chuàng)建對(duì)象
  Random r = new Random();
  for(int i = 1; i <= 10; i++){
   // 3. 獲取隨機(jī)數(shù)
   int num = r.nextInt(10) + 1;  // 1-10
   System.out.println(num);
  }
 }
}

11.2 Random練習(xí)-猜數(shù)字(應(yīng)用)
  • 需求:

    程序自動(dòng)生成一個(gè)1-100之間的數(shù)字,使用程序?qū)崿F(xiàn)猜出這個(gè)數(shù)字是多少?

    當(dāng)猜錯(cuò)的時(shí)候根據(jù)不同情況給出相應(yīng)的提示

    A. 如果猜的數(shù)字比真實(shí)數(shù)字大,提示你猜的數(shù)據(jù)大了

    B. 如果猜的數(shù)字比真實(shí)數(shù)字小,提示你猜的數(shù)據(jù)小了

    C. 如果猜的數(shù)字與真實(shí)數(shù)字相等,提示恭喜你猜中了

  • 示例代碼:

import java.util.Scanner;
import java.util.Random;
public class Test {
 /*
  需求:程序自動(dòng)生成一個(gè)1-100之間的數(shù)字,使用程序?qū)崿F(xiàn)猜出這個(gè)數(shù)字是多少?
   當(dāng)猜錯(cuò)的時(shí)候根據(jù)不同情況給出相應(yīng)的提示
   如果猜的數(shù)字比真實(shí)數(shù)字大,提示你猜的數(shù)據(jù)大了
   如果猜的數(shù)字比真實(shí)數(shù)字小,提示你猜的數(shù)據(jù)小了
   如果猜的數(shù)字與真實(shí)數(shù)字相等,提示恭喜你猜中了
  1. 準(zhǔn)備Random和Scanner對(duì)象, 分別用于產(chǎn)生隨機(jī)數(shù)和鍵盤錄入
  2. 使用Random產(chǎn)生一個(gè)1-100之間的數(shù), 作為要猜的數(shù)
  3. 鍵盤錄入用戶猜的的數(shù)據(jù)
  4. 使用錄入的數(shù)據(jù)(用戶猜的數(shù)據(jù))和隨機(jī)數(shù)(要猜的數(shù)據(jù))進(jìn)行比較, 并給出提示
  5. 以上內(nèi)容需要多次進(jìn)行, 但無(wú)法預(yù)估用戶輸入幾次可以猜測(cè)正確, 使用while(true)死循環(huán)包裹
  6. 猜對(duì)之后, break結(jié)束.
 */
 public static void main(String[] args){
  // 1. 準(zhǔn)備Random和Scanner對(duì)象, 分別用于產(chǎn)生隨機(jī)數(shù)和鍵盤錄入
  Random r = new Random();
  Scanner sc = new Scanner(System.in);
  // 2. 使用Random產(chǎn)生一個(gè)1-100之間的數(shù), 作為要猜的數(shù)
  int randomNum = r.nextInt(100) + 1;
  // 5. 以上內(nèi)容需要多次進(jìn)行, 但無(wú)法預(yù)估用戶輸入幾次可以猜測(cè)正確, 使用while(true)死循環(huán)包裹
  while(true){
   // 3. 鍵盤錄入用戶猜的的數(shù)據(jù)
   System.out.println("請(qǐng)輸入您猜的數(shù)據(jù):");
   int num = sc.nextInt();
   // 4. 使用錄入的數(shù)據(jù)(用戶猜的數(shù)據(jù))和隨機(jī)數(shù)(要猜的數(shù)據(jù))進(jìn)行比較, 并給出提示
   if(num > randomNum){
    System.out.println("猜大了");
   }else if(num < randomNum){
    System.out.println("猜小了");
   }else{
    // 6. 猜對(duì)之后, break結(jié)束.
    System.out.println("恭喜,猜中了");
    break;
   }
  }
  System.out.println("感謝您的使用");
 }
}
Tags:JAVA,語(yǔ)法,入門  
責(zé)任編輯:admin
  • 上一篇文章:
  • 下一篇文章: 沒有了
  • 請(qǐng)文明參與討論,禁止漫罵攻擊。 昵稱:注冊(cè)  登錄
    [ 查看全部 ] 網(wǎng)友評(píng)論
    關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁(yè)面
    下到頁(yè)底
    晶體管查詢
    主站蜘蛛池模板: 亚洲国产天堂久久综合 | 淫僧荡尼巨乳(h)小说 | 日韩色影院 | 91精品91| 久久久综合网 | www国产91| www.欧美| 婷婷综合社区 | 这里有精品在线视频 | 天堂资源最新在线 | 浪漫樱花在线观看高清动漫 | 欧美成人极品 | 国产毛片一区二区三区va在线 | 一本色道av| 日本熟伦人妇xxxx | 日日夜夜添 | 亚洲综合一区二区三区 | 亚洲视频久久久 | 在线波多野结衣 | 高潮久久久| 色屁屁ts人妖系列二区 | 免费看的一级片 | 天天操天天干天天舔 | 国产九一精品 | 69精品久久久久久久 | 久久日韩精品 | 99riav1国产精品视频 | 日韩av不卡在线观看 | 黄色永久网站 | 日本高清网站 | 黄色av地址| 欧美顶级黄色大片免费 | 中文字幕另类 | 自宅警备员在线观看 | 私库av在线| 久久久88| 热久久这里只有精品 | 黄色免费大片 | 亚洲欧美国产另类 | 亚洲成人av影片 | 亚洲国产aⅴ| 手机看片日本 | 日本a v在线播放 | 国产乱子视频 | 免费精品久久 | 欧美 亚洲 | 天堂av√ | www.96av| 好看的中文字幕第一页 | 国产欧美久久久精品免费 | 成人免费视频视频 | 一级艳片新婚之夜 | 日韩av专区 | 午夜精品久久久久久久 | 啪啪五月天 | 成年人在线免费看 | 激情综合网五月婷婷 | 伊人涩 | 亚洲第三十七页 | 蜜臀视频在线观看 | 天天干天天操天天干 | 潘金莲一级淫片aaaaaaa | 欧美一级在线视频 | 五月婷视频 | 国产精品资源在线观看 | www.中文字幕.com | 欧美干干干 | 久久久久久不卡 | 欧美资源网| 国产第五页 | 午夜啊啊啊 | 亚洲自拍网站 | 成人免费看类便视频 | 日韩av成人在线 | 亚洲第一二三区 | 在线视频三区 | 日韩中文字幕在线视频 | 国产成人福利在线 | 狠狠干在线视频 | 久草久操 | 最新中文av| 一二三区视频在线 | 日韩黄色网页 | 五月婷婷激情视频 | 羞羞的铁拳在线观看 | 特级做a爱片免费69 日韩在线免费播放 | 91麻豆精品国产91久久久久久久久 | 91久久久久久久久 | 4438全国成人免费 | 日日狠狠久久 | 三级福利片 | 天天干天天插天天射 | 欧美日韩a级 | 激情婷婷网 | 国产欧美亚洲精品 | 麻豆三级 | 欧美精品www | 美女极度色诱图片www视频 | 99久久久久久 | 亚洲男人天堂网址 | 另类视频在线观看 | 亚州一区二区 | 九九综合 | 亚洲美女屁股眼交8 | 日本黄色不卡视频 | 国产精品黄色片 | 亚洲区视频在线观看 | 精品资源成人 | 国产三级做爰高清在线 | 岛国精品资源网站 | 日本在线观看免费 | 青草综合 | 亚洲国产视频一区二区三区 | 成人免费看片39 | 麻豆亚洲一区 | 亚洲欧美日韩偷拍 | 日韩一级免费毛片 | 91你懂的| 91无打码 | 放荡闺蜜高h苏桃情事h | 在线看的av| 黄色喷水视频 | 精品久久久久久亚洲综合网站 | 婷婷一区二区三区 | 久久精品久久久久久久久久久久久 | 可以免费观看的av网站 | 成人国产在线观看 | 精品少妇一区二区三区免费观看 | 337p日本大胆噜噜噜鲁 | 久久av免费观看 | 毛片首页 | 欧美日韩精品亚洲精品 | 国产精品一区二区三区久久久 | 免费毛片视频 | 毛片视屏| 日韩欧美大片在线观看 | 五月天狠狠操 | 中文字幕网站免费观看 | 欧美一区久久 | 亚色在线观看 | 午夜av成人 | 污在线观看 | 亚洲久久影院 | 40到50岁中老年妇女毛片 | 亚洲精品免费在线观看 | 一级黄色性感片 | 天堂视频免费 | 一级二级三级黄色片 | 成人国产精品蜜柚视频 | 99在线观看免费 | 美女网站av| 一区二区三区在线免费观看 | 亚洲免费激情 | 久久久久久a亚洲欧洲av | 久久久久久久久久久影院 | 户外少妇对白啪啪野战 | 亚洲精品av中文字幕在线在线 | 麻豆av一区二区三区 | 亚洲欧洲中文字幕 | 国产精品国产三级国产aⅴ 精品欧美久久 | av免费天堂| 国产精品一区av | 在线观看毛片的网站 | av免费高清 | 久久少妇网 | 极品少妇露脸一区二区 | 国产www在线观看 | juliaann精品艳妇hd | 一区二区三区视频观看 | 久久久精品视频在线 | 久久久久久久久久91 | 日韩一区二区在线观看视频 | 欧美高清在线视频 | 在线视频导航 | 天天操狠狠操 | 欧美理伦片在线播放 | 一本一道久久久a久久久精品蜜臀 | 亚洲综合天堂 | 国产黑丝一区二区 | a国产一区二区免费入口 | 在线免费观看视频一区二区三区 | 免费黄色三级网站 | 性,国产三级在线观看 | 亚洲精品欧洲 | 福利在线看 | 日韩欧美自拍 | 亚洲天天综合 | 少妇高潮一区二区三区99 | 国产乱码精品一区二区三区五月婷 | 成 年人 黄 色 片 | 成年人天堂 | 第一章激情艳妇 | 亚洲视频欧美视频 | 国产美女精品 | 中文字幕免费在线看线人动作大片 | 亚洲麻豆 | 涩涩网站在线观看 | 99伊人网 | 国产区91 | 日韩不卡视频在线 | 日韩一区二区三 | 麻豆网站在线播放 | 性爱视频免费 | 91精品国产综合久久婷婷香蕉 | 国产人成在线 | 国语自产偷拍精品视频 | 亚洲视频在线观看一区二区 | 久久国产精品一区二区三区 | 观看av免费| 亚洲男女视频在线观看 | 日韩在线视频不卡 | 4438x五月 | 亚洲精品在线观看中文字幕 | 亚洲看片网站 | www.日韩视频| 日韩免费专区 | 日韩黄色免费视频 | 久久免费片 | 男女视频一区 | 四虎成人永久免费视频 | 日韩大尺度在线观看 | 天天躁日日躁狠狠躁av | 欧美超碰在线 | 黄色网页免费 | 国产激情网站 | 国产在线高潮 | 国产福利视频一区二区 | 日韩欧美成人网 | 亚洲国产97 | 日本黄色三级网站 | 欧美久久久久久久久久久久 | 亚洲图片欧美日韩 | 久久久777| 麻豆视频一区二区 | 亚洲欧美高清在线 | 国产精品99在线观看 | 国产精品三 | 亚洲一二三四区 | 成人在线视频网站 | 亚洲五月网 | 狠狠网| 精品成人一区二区 | 亚洲宅男天堂 | 激情网久久 | 在线se| www日本在线观看 | 色老头在线视频 | 色乱码一区二区三在线看 | 亚洲一区二区久久久 | 中国黄色一级片 | 亚洲天堂成人 | 蜜臀久久99精品久久一区二区 | 男操女视频在线观看 | 午夜视频一区二区三区 | 国产性猛交xxxx免费看久久 | 亚洲精品网站在线 | 天天做天天爽 | 亚洲黄色在线网站 | 日本不卡一二三区 | 91麻豆国产精品 | 精品人人爽 | 色哟哟在线 | 免费看操片| 色人综合 | 精品国产乱码久久久久久久 | 久久夜夜夜 | 美女视频在线免费观看 | 久久久久一区 | av官网 | 午夜精品视频在线 | 国产偷亚洲偷欧美偷精品 | 日韩av在线看免费观看 | 武林美妇肉伦娇喘呻吟 | 黄色特级片 | 国产一区二区三区在线看 | 午夜免费福利视频 | 久久av网址 | 国产视频a区 | 女性裸体下面张开 | 欧美日韩成人免费观看 | 亚洲日本久久久 | 日本三级视频在线播放 | 午夜成年人视频 | 亚洲精品国产福利 | 高h av| 亚色视频 | 亚洲精品蜜桃久在线 | 中文字幕在线第一页 | 四虎成人影视 | 99久久这里只有精品 | 你懂的国产视频 | 日韩一区二区精品视频 | 老司机福利精品 | 中文字幕一区二区三 | 99久久99久久精品国产片桃花 | 成人做受黄大片 | 亚洲天堂视频在线免费观看 | 久久久免费| 三级a视频| www.xxx日韩| 天堂综合| 最新中文字幕av专区 | 亚洲国产精品一区二区www | 午夜寂寞影视 | 国产一区观看 | 天天添天天射 | 日日射视频 | 久久亚洲网站 | 一区二区久久久久 | 国产在线观看黄色 | 中文字幕5页 | 亚洲精品一区二区三区影院忠贞 | 免费网站永久免费入口 | 夜夜天堂| 91激情在线视频 | 亚洲人屁股眼子交1 | 欧美成人激情视频 | 国产精品免费av一区二区 | 夜夜天天 | 自拍啪啪 | 好吊日在线 | 在线精品一区二区 | 国产精品久久伊人 | 日韩黄页网站 | 中文字幕av二区 | 国产精品久久久久久久久久久免费看 | 超碰99在线 | 国产精品免费无遮挡 | 超碰在线一区 | 伊人蕉久| 国产色爽 | 国产精品地址 | 亚洲伦理网站 | 尤物视频网站在线观看 | 一本大道香蕉大a√在线 | 一区二区毛片 | 国产亚洲精品久久久久久青梅 | 国产丝袜视频在线观看 | 黄色片在线免费观看 | 黄色免费在线播放 | 性色一区二区三区 | 国产精品久久久久久久久免费看 | 国产最爽的乱淫视频国语对白 | 波多野结衣中文字幕一区二区三区 | 最近中文字幕大全2019 | 播色屋| 9·1·黄·色·视·频| 国产精品av网站 | 午夜看片网站 | 九九精品在线观看视频 | 欧美成人精品欧美一级私黄 | 亚洲欧美日韩在线看 | 国产三级观看 | 欧美性猛交 | 国产91精品一区二区三区四区 | 久久福利国产 | 日日夜夜精品视频 | 国产麻豆一级片 | 曰韩欧美精品 | 国产免费a | av免费网站在线观看 | 欧美三级韩国三级日本三斤在线观看 | 亚洲第一成人久久网站 | 欧美成人免费在线视频 | 久久久久久亚洲视频 | 日b视频免费看 | 成人性色生活片 | 九九九九精品 | 久久禁| 2024国产精品视频 | 欧美综合第一页 | 超碰夫妻 | 99日韩精品| 五月婷婷丁香在线 | 婷婷色影院 | 亚洲伊人成综合网 | 欧美日韩激情 | 国产精品欧美一区二区 | 国产人澡人澡澡澡人视频 | 国产又黄又 | 色小姐综合 | 4438x五月| 国产视频黄 | 亚洲精品综合五月久久小说 | 久久久激情视频 | 成人免费观看在线视频 | 人人爱人人看 | 91极品视频 | 超碰人人擦| 日韩在线专区 | 成年人在线播放 | 国产精品久久999 | 国产一区在线播放 | 亚洲a成人 | 热热色国产| 97久久香蕉国产线看观看 | 在哪里可以看毛片 | 五月激情综合 | 最近的2019中文字幕免费一页 | 精品国产午夜 | 亚洲成人婷婷 | 老色批影视 | 制服丝袜第一页在线 | 免费亚洲一区 | 男女午夜视频在线观看 | 亚洲生活片 | 亚洲国产成人在线 | 麻豆福利在线 | 狠狠干网 | 国产夜夜春 | 国产日韩精品一区二区 | 亚洲视频在线观看视频 | 欧美高清69hd | 国产精品情侣 | 免费看91视频 | 日韩av一级 | 伊人av综合网 | 夜夜操夜夜爽 | 亚洲高清欧美 | 悟空影视大全免费高清观看在线 | 国产大片在线观看 | 另类天堂 | 成人av自拍| 精产国品一区二区三区 | 午夜xxxx| 91桃色免费视频 | 日韩啊v| 亚洲女人天堂网 | 日本69少妇| 亚洲欧美国产精品久久久久久久 | 中文字幕第18页 | 日韩激情综合 | 亚洲麻豆视频 | 亚洲欧美色视频 | 亚洲啪啪| 99久久精品免费看国产四区 | www.天堂av.com | 日韩一区欧美二区 | 一本到久久 | 国产偷久久一级精品 | 天天视频色 | 亚洲在线视频免费观看 | 亚洲图片欧美日韩 | 97国产在线 | 四虎永久在线观看 | 夜夜艹日日艹 | 亚洲九九九九 | 中国新婚夫妻性猛交 | 日韩中文字幕在线视频 | www五月天com | 日本污视频在线观看 | 亚洲国产精品第一区二区 | 尤物在线网站 | 亚洲国产精品成人久久久麻豆 | 亚洲少妇精品 | 国产精选自拍 | 91自啪| 在线免费看黄视频 | 中文字幕免费在线看线人动作大片 | 国产在线不卡视频 | 日韩欧美激情视频 | 纯爱无遮挡h肉动漫在线播放 | 国产成人a v | 欧美一级淫片007 | 天天做天天爱天天操 | 一级性毛片| 福利在线网站 | 亚洲欧美成人一区二区三区 | 黄色三级情侣片 | 91亚洲一区二区三区 | 欧美色涩 | 性xxxxbbbb| 男人的天堂在线播放 | 丰满少妇一区二区三区专区 | 96精品视频 | 中文字幕av在线 | 欧美精品一区二区视频 | 综合伊人久久 | 国产a久久麻豆入口 | 亚洲成熟少妇视频在线观看 | 成人a网 | 最新av网址大全 | 日本少妇大战黑人 | 又黄又爽的视频在线观看 | 久久精品视频免费看 | 欧美婷婷 | 色综合天天 | 中文在线第一页 | 在线观看a网站 | 亚洲网站免费看 | 欧美一级片免费在线观看 | 日韩午夜毛片 | 成人免费看片又大又黄 | 欧美日韩国产精品成人 | 好看的毛片| 中文字幕丰满人伦在线 | 国产人久久人人人人爽 | 成人夜晚视频 | 伊人网免费视频 | 国产乱大交 | 亚洲自拍偷拍精品视频 | a级片免费在线观看 | 午夜三区 | 2024国产精品视频 | 国产日韩欧美综合 | 亚洲专区区免费 | 色婷婷精品视频 | 国产成人亚洲综合a∨婷婷 精品久久久久久国产 | 精品理论片| 成年人观看视频 | 欧美美女一区二区 | 色亚洲成人 | 国产精品一二区 | 亚洲成人7777| 亚洲一区二区三区免费 | 狠狠操网 | av在线网页 | 91丨九色丨黑人外教 | 尤物视频在线观看 | 在线亚洲一区 | 精品91久久久久久 | 国产3p精品一区 | 国产又大又黑又粗免费视频 | www.aaaav | 国产强伦人妻毛片 | 国产一二区在线观看 | 中文字幕第28页 | www.youjizz.com久久 | 国产欧美精品一区二区 | 久久久久女教师免费一区 | 激情欧美亚洲 | 国产激情av | 欧美狂猛xxxxx乱大交3 | 99er这里只有精品 | 六月婷婷综合 | 欧美呦交| 亚洲欧洲av在线 | 伊人黄色网| 在线精品观看 | 国产精品精东影业 | 国产免费v片 | 激情视频91 | 色哟哟一区二区 | 日本亚洲国产 | 黑人巨大xxxxx性猛交 | 成人黄色一级 | 乱xxxxx普通话对白 | 国产伦精品一区二区三区视频孕妇 | www.午夜| 国产成人午夜精品5599 | 伊人导航 | 国产色 | 精品伦精品一区二区三区视频 | 国产一区二区在线免费观看 | 一级一级特黄女人精品毛片 | 91天堂在线视频 | 免费二区 | 欧美a视频在线观看 | 国产啊v在线 | 欧美综合一区二区三区 | 澳门av在线| 2024国产精品视频 | 日韩精品久| 女性裸体下面张开 | 美女涩涩网站 | 亚洲激情啪啪 | 国产精品国产精品国产专区蜜臀ah | 在线日韩 | 国产最爽的乱淫视频国语对白 | 黄色一级片免费 | av综合资源 | 一级片观看 | 精品国产午夜 | 日韩中文字幕在线观看视频 | 久久精品日韩 | 毛片视屏| 一区二区三区在线看 | 免费日韩视频 | 免费中文字幕在线观看 | 香蕉国产在线观看 | 欧美激情一区二区 | 日韩视频成人 | 看全色黄大色黄大片大学生 | 欧美视频日韩视频 | 999天堂 | 久色影视 | 日韩欧美三级 | 成人激情视频网 | 特级av片| 国产精品久久久久久久久久免费看 | 91久久久久久 | 青青草手机在线视频 | 国产清纯白嫩初高中在线观看性色 | 欧美中文一区 | 成人免费在线视频网站 | 日本裸体xx少妇18在线 | 男人的天堂久久 | 日韩精品一区二区三区国语自制 | 国产新婚疯狂做爰视频 | 亚洲污视频| 激情二区| 色a视频| 婷婷丁香六月天 | 精品中文字幕在线播放 | 视频二区三区 | 美女国产一区 | 欧美日韩中文字幕在线视频 | 国产美女免费视频 | 嫩操影院| 亚洲产国偷v产偷自拍网址 亚洲成色777777女色窝 | 亚洲自拍偷拍av | 亚洲色无码播放 | 亚洲无毛视频 | 国产91在线播放 | 天天插日日干 | 7777精品久久久久久 | 欧美久久久久 | 综合av在线 | 久久不射网 | 久久久福利 | 91叼嘿视频 | 欧美亚洲国产精品 | 国产黑丝一区二区 | 简单av网| 伊人网中文字幕 | 亚洲性视频 | 亚洲国内自拍 | 毛片1000部免费看 | 黄色亚洲网站 | 丁香六月在线 | 97色综合| 亚洲不卡视频在线观看 | 成人精品毛片国产亚洲av十九禁 | 午夜激情视频 | 免费网站永久免费入口 | 日韩中文一区 | 欧美精品黄色 | 国产黄a三级三级三级av在线看 | 中文有码在线观看 | 黄网站在线观看视频 | 国产一级片毛片 | 亚洲国产精一区二区三区性色 | 国产精品国色综合久久 | 性欧美精品男男 | 欧美另类v| 天天射天天射天天射 | 四虎视频在线 | 超碰在线看 | 污视频免费网站 | 粉嫩av在线播放 | 亚洲精品国产第一综合99久久 | 在线 丝袜 欧美 日韩 制服 | a视频在线播放 | 在线免费观看a视频 | 日韩夜夜 | 国产免费一区二区三区免费视频 | 99久久久国产精品 | 销魂美女一区二区 | 久久久精品国产sm调教网站 | 日韩三级在线播放 | 亚洲精品网站在线观看 | 操干网| 日本囗交做爰视频 | 视频在线观看免费 | 五月情婷婷 | 免费观看毛片 | 免费啪视频在线观看 | 久久99热这里只有精品 | 色在线视频观看 | 日本午夜大片 | av不卡在线 | 国产福利专区 | 亚洲女人奶水多 | 成人一区二区三区免费视频 | 污污视频在线免费看 | 久久久国产亚洲精品 | 在线观看成人黄色 | 亚洲天堂视频网站 | 亚洲自拍中文 | 免费污视频在线观看 | 亚洲免费高清视频 | 美女伊人网 | 精品一区二区三区在线观看 | 中文字幕一区二区三区精品 | 97在线免费 | 日日日操操操 | 桃色一区| 丰满岳乱妇一区二区 | 色女生影院 | 国产高潮在线 | 一区二区三区激情 | 国产成人传媒 | 精品福利一区 | 久久国产精品毛片 | 欧美福利网站 | a级黄毛片| 日韩三级黄色 | 日本久久高清 | 日韩美女性生活 | 国产在线色 | 久本草精品 | avxx| 日本三级午夜理伦三级三 | 久久九九精品 | av毛片一区二区 | 一本免费视频 | 成人狠狠干 | www.四虎.| 国产成人a∨| 国产精品久久久久影院老司 | 黄色小视频免费 | 精品在线第一页 | 激情图片在线观看 | 97caoav| 五月婷婷一区 | 91在线观 | 91久久中文字幕 | 特一级黄色片 | 碰超在线| 国产aⅴ一区二区三区 | 在线永久免费观看日韩a | 亚洲成人性视频 | 午夜在线不卡 | 亚洲精品毛片一区二区三区 | 一级一片免费看 | 超碰网址 | 不卡中文 | 国产视频精品视频 | 超碰一区二区三区 | 国产精品久久婷婷 | 在线99视频| 婷婷亚洲天堂 | 理论片av | 欧美特级黄色大片 | 欧美偷拍精品 | 午夜性色福利影院 | 久久久久久日产精品 | 天堂av资源网 | 久久99成人| 精品久久精品 | 黄色片网站免费观看 | 自拍偷拍第1页 | 亚洲欧美在线视频免费 | 国产精品久久久久久久成人午夜 | 蜜桃精品视频 | 欧美日韩免费网站 | aaa黄色一级片 | 午夜视频网址 | 中文字幕日韩精品视频一区视频二区 | 国产精品资源在线观看 | 日韩在线观看网址 | 欧美视频免费在线观看 | 色综合图区 | 黑白配高清国语在线观看 | 国产igao为爱做激情在线观看 | 色视频在线观看 | 二级黄色大片 | 国产伦精品一区二区三区在线 | 亚洲一区精品二人人爽久久 | 精品久久免费 | 婷婷色综合网 | 久久久国产精品人人片 | 福利视频三区 | 中文字幕av免费观看 | 理论片高清免费理论片毛毛片 | 中日韩毛片 | 亚洲区国产区 | 91亚洲国产成人精品一区二三 | 福利视频三区 | 国产精品资源站 | 久久久99精品 | 亚洲日本视频在线观看 | 国内外成人在线视频 | japanese国产打屁屁3 | 九九热这里都是精品 | 青娱乐97 | 黄瓜视频污在线观看 | 中文字幕一区二区在线播放 | 国产伦理一区二区 | www.中文字幕.com| 免费色播 | 四虎影视成人永久免费观看亚洲欧美 | 天天插天天 | 中文字幕 欧美 在线 | 久久精品夜色噜噜亚洲a∨ 在线中文字幕播放 | 你懂的国产在线 | 伊人自拍视频 | 精品成人在线视频 | 国产精品欧美一区二区 | 天天干免费视频 | 国产精品视频一区二区三区不卡 | 三级黄在线观看 | 精品一二三区 | 国产中文字幕亚洲 | 中文字幕一区二区不卡 | a天堂视频 | www.欧美.com | 国产又粗又黄的视频 | avtt国产 | 蜜臀久久精品久久久久 | 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 国产又大又粗又长 | 一级二级三级黄色片 | 97在线成人| 亚洲成人经典 | 成人91av | 男女69视频| 欧美在线激情视频 | 操操插插 | 激情久久久久 | av地址在线观看 | 成人欧美日韩 | 8x8x最新网址 | 噜噜色综合噜噜色噜噜色 | 久久久久久一区二区 | 国产看黄网站 | 精品处破女学生 | 情侣av| 人人干人人艹 | 久久人人爽爽人人爽人人片av | 特级丰满少妇一级aaaa爱毛片 | 欧美视频免费在线观看 | 国产一级在线视频 | 欧美一级黄色片在线观看 | 91美女片黄在线观看游戏 | 国产三级三级三级 | 91精品国产网站 | 免费看久久 | 亚洲国产天堂av | 日本一区二区三区精品 | 91成人国产综合久久精品 | 亚洲最大在线观看 | 亚洲激情精品 | 国产精品原创av | 91传媒视频在线观看 | 一区二区三区国产精品 | 一区二区三区波多野结衣 | 日韩两性视频 | 自拍偷拍日韩精品 | 久久中文字幕av | 一区二区日韩 | 在线黄色av | 91免费看视频 | 天天干网站| 欧美黑人xxx| 亚洲欧美综合网 | 中国一级片黄色一级片黄 | 中文字幕天堂网 | 95国产精品 | 色视频网 | 久久精品性 | 在线免费观看h片 | 九色综合网 | 99自拍视频| 国产主播精品 | 欧美日韩精品在线播放 | 牛牛在线 | 日本一区高清 | 日韩欧美日韩 | 成人网av | 亚洲精品乱码久久久久久写真 | 中文字幕一二区 | 老司机成人网 | 免费在线视频观看 | 青娱乐超碰在线 | 黄色av视屏 | 三级视频在线观看 | 久久久蜜桃一区二区人 | 91视频在线免费观看 | 嫩草在线观看 | 久久免费高清视频 | 久久久久久三区 | 国产古装艳史毛片hd | 日韩在线二区 | 视频一区 中文字幕 | 亚洲综合色视频 | 91成人在线播放 | 久草资源在线 | 欧美日韩亚洲另类 | 国语对白永久免费 | 午夜免费大片 | 国产91精品看黄网站在线观看 | 久久青青| 男生操女生逼逼 | 日韩tv| 日韩在观看线 | 伊人网址 | 精品日韩中文字幕 | 国产成人精品一区二区三区视频 | 一区二区三区av | 成人特级毛片 | 成人黄色一级视频 | 日本xxxxxwwwww| 超碰最新在线 | 久久国产精品久久久久久电车 | 欧美性猛交xxxⅹ富婆 | 好吊操精品视频 | 亚洲天堂影音先锋 | 超碰97在线免费 | 亚洲成人av在线播放 | 国产精品羞羞答答在线观看 | 国产精品久久久久久久久久久久久久不卡 | h片网站在线观看 | 国产免费a级片 | 最新版天堂资源在线 | 伊人久操视频 | 久久在线免费观看视频 | 快色网站| 毛片一区二区三区 | 都市激情 亚洲 | 精品免费一区二区三区 | 欧美三级三级三级爽爽爽 | 日本一区二区精品 | 操操操操操网 | 艳母日本动漫在线观看 | 久久性感视频 | 亚洲乱亚洲乱妇 | 一级片色播影院 | 日韩欧美中文字幕在线播放 | av日韩在线免费观看 | 久久精品香蕉 | 日婷婷 | 国产毛片毛片 | 国产精品久久久久久久久久99 | 色姑娘综合网 | 国产xxxx裸体肉体大胆147 | 男人舔女人下部高潮全视频 | 禁断介护一区二区在线 | 呦女精品| 日韩大片免费观看 | www久久精品 | 国产欧美视频在线观看 | 亚洲国产一区自拍 | 伊人网在线观看 | 亚洲图片在线视频 | 日韩毛片大全 | 日美毛片| 亚洲v在线观看 | 婷婷激情网站 | 国产成人午夜精品 | 伊人久久中文 | 综合网在线观看 | 欧美一区二| 日产精品一区 | 日韩在线第二页 | 伊人久久青草 | 日韩av一级片 | 国产特黄aaa大片免费观看 | 精品在线免费观看 | 人人射人人爽 | 亚洲xxxxx| 亚洲视频一区在线播放 | 午夜一区二区三区四区 | 99久久影院 | 那个网站可以看毛片 | 日本高清不卡二区 | 新91视频在线观看 | 欧美成在线观看 | 精品欧美乱码久久久久久 | 99re热这里只有精品视频 | 国产在线观看免费麻豆 | 亚洲成人va | 色婷婷免费视频 | 久久久久久久9999 | 久久久久在线观看 | 2018国产精华国产精品 | 亚洲天堂免费在线 | 亚洲精品国产精品乱码不卡√香蕉 | 男操女视频在线观看 | 在线播放你懂得 | 国产三级在线看 | 性一区| 91青草视频 | 欧美一级在线播放 | 成人av番号网| 午夜精品久久久久久久第一页按摩 | 亚洲国产综合在线 | 欧美在线播放 | 欧美精品二区三区四区免费看视频 | 天天躁日日躁狠狠躁喷水 | 久久久久国产精品人 | 伊人射 | 亚洲永久免费网站 | 狠狠久久久 | 久久久免费 | 国产女人视频 | 亚洲成网| 欧美69精品久久久久久不卡 | 亚洲精品在线观看网站 | 涩涩视频在线观看 | 欧美视频中文字幕 | 国产三级三级三级 | 日韩女女同性aa女同 | 欧洲视频一区 | 亚洲性少妇| 亚洲麻豆视频 | 男女视频在线观看免费 | 久久99婷婷国产精品免费 | 婷婷超碰 |