**-----本章節-----**
1.分支語句
2.循環
3.數組
4.控制檯輸入語句
5.部分常用的數學函數
==============================================================
一分支語句
1.概念
(1)分支語句又稱條件語句條件語句使部分程序可根據某些表達式的值被有選擇地執行。
(2)Java編程語言支持雙路 if和多路 switch 分支語句。
==================================================================
2.分支語句的形式
(1)If-else語句
在 Java編程語言中if()用的是一個布爾表達式而不是數字值.
(2)Switch語句
表達式的值必須與整型兼容或者enum枚舉類型的常量值包含byte、short、int 和char不能是字符串或對象也不能是long型的值
注選擇分支形式的原則是否具有固定的數值 。
=======================================================
3.if分支語句的形式
(1)形式1
if(boolean類型表達式){
語句A;
}
功能當表達式值爲false時執行語句A否則跳過語句A。
(2)形式2
if(boolean類型表達式){
語句A;
}
else{
語句B
}
功能表達式爲true執行A表達式爲false執行B
注如果不用“{ }”則“else”總是與最接近它的前一個“if”相匹配
(3)形式3
if(Boolean類型表達式1){
語句1;
}
else if(表達式2){
語句2;
}
else if(表達式3){
語句3;
}
…… ……
else if(表達式n){
語句n;
}
else{
語句n;
}
**-----總結if-else語句的規則-----**
(1)if後的括號不能省略括號裏表達式的值最終必須返回的是布爾值 。
(2)如果條件體內只有一條語句需要執行那麼if後面的大括號可以省略但這是一種極爲不好的編程 習慣。
(3)對於給定的ifelse語句是可選的else if 語句也是可選的。
(4)else和else if同時出現時else必須出現在else if 之後 。
(5)如果有多條else if語句同時出現那麼如果有一條else if語句的表達式測試成功那麼會忽略掉 其他所有else if和else分支。
(6)如果出現多個if,只有一個else的情形else子句歸屬於最內層的if語句。
=======================================================
4.switch語句
(1)概念只能針對某個表達式的值做出判斷從而決定程序執行哪一段代 碼。
注:switch語句中的表達式只能是byte、short、char、int類型的值如果傳入其 他值會報錯。後引入enum枚舉和String類型的值兩個新特性也符合規則。
注:*、switch只能匹配固定值但if語句可以匹配固定值也可以匹配範圍
**、switch只能匹配int/char類型的變量但是從JDK1.8開始可以匹配字符 串
(2)switch語句語法格式
switch(整型或字符型變量){
case const1:
statement1;
break;
case const2:
statement2;
break;
…… ……
[default:
statement default;
break;]
}
*、 break在此處表示跳出這一分支。
**、 如果沒有 break 語句作爲某一個 case 代碼段的結束句則程序的執行將繼 續到下一個case而不檢查 case 表達式的值。
***、當變量或表達式的值不能與任何 case 值相匹配時可選缺省符(default)指 出了應該執行的程序代碼case之後可以是直接的常量數值。
(3)當變量值爲一個範圍中的任何值且程序的處理方式相同時 則有如下使用方式
switch(){
case 1:
case 2:
case 3:
System.out.println();
break;
case 4:
case 5:
System.out.println();
break;
default:
System.out.println();
break;
}
(4)switch語句常見錯誤
*、
float a = 0.123;
switch(a) {
//錯誤a不是整型或字符類型變量。
....
}
**、
switch(formWay){
case 2-1 : //正確
...
case a-2 : //錯誤
...
case 2.0 : //錯誤
...
}
***、
switch (formWay) {
case 1 : {
int a=2;
...
}
//正確變量a被明確限定在當前範圍內
case 2 :
...
}
//錯誤。由於case不明確的範圍編譯器無法在此處定義一個變量。
注一般教科書上只是說 case 分支可以不使用但這裏我想提醒大家並不是任何情況下case分支都可以不加{}比如你想在某個case裏定義一個變量
二循環
1.概念
循環語句在程序設計中用來描述有規則重複的流程。循環語句總共有三種常見的形式
(1)for 語句
(2)while 語句
(3)do/while語句
循環語句作用將一段代碼或程序重複執行
=====================================================
2.while 循環語句
語法結構如下
while(循環條件){
執行語句
----
}
根據條件判斷來決定是否執行大括號內的執行語句。
執行流程在執行while語句時首先判斷循環條件如果循環條件爲false則直接執行while語句後續的代碼如果循環條件爲true則執行循環體代碼然後再判斷循環條件一直到循環條件不成立爲止。
=================================================
3.do-while循環語句
do-while語句的語法格式爲
do{
循環體
}while循環條件
語法說明在do-while語句中循環體部分是重複執行的代碼部分循環條件指循環成立的條件要求循環條件是boolean類型值爲true時循環執行否則循環結束最後整個語句以分號結束。
執行流程當執行到do-while語句時首先執行循環體然後再判斷循環條件如果循環條件不成立則循環結束如果循環條件成立則繼續執行循環體循環體執行完成以後再判斷循環條件依次類推。
================================================
4.for 語句循環
(1)語法結構
for(初始化語句;循環條件;步長){
循環體;
}
注意for循環的執行順序先執行初始化語句;再執行循環條件;
(2)for 語句實例
for (int i = 0; i < 10; i++) {
System.out.println("Java快車");
}
如果測試表達式返回true則執行循環體就是system的輸出語句如果測試表達式返回false則整個循環結束然後執行增量表達式。我們稱這是第一次循環結束了初始值表達式只執行一次第二次循環從測試表達式開始方法和步驟和第一次一樣。循環就這樣一次一次地進行直到測試表達式返回false整個循環就結束了這個for語句的生命週期就結束了。
(3)break、continue
例
for(int i=1;i<=5;i++){
if(i == 3){
continue;
}
System.out.println(i);
}
=======================================================
for(;;){
System.out.println("是否繼續Y/N");
char input = new Scanner(System.in).next().charAt(0);
if(input == 'N'){
break;
}
}
break:停止當前循環未執行的循環體以及循環次數都不再執行
continue:停止本次循環本次未執行的循環體不再執行會直接進入下次循環
====================================================
5.for 語句的嵌套
(1)for(初始化語句;循環條件;步長){
[循環體];
for(初始化語句;循環條件;步長){
循環體;
} }
(2)for(初始化語句;循環條件;步長){
[循環體];
if子句;
}
=======================================================
6.控制檯輸入語句--輸入函數Scanner
(1)使用Scanner類首先要導入 import java.util.Scanner;
(2)然後建立對象 Scanner scan = new Scanner(System.in);
(3)構造新的對象併爲此對象安排內存空間。
一般的模式多爲
(4)new 構造對象類型(形參);如果在對象聲明的時候進行賦值則叫對象的初始 化。
(5)一般模式爲 對象類型 對象名稱=new 構造對象類型(形參);
然後就可以接收控制檯輸入的各種數據類型了。
比如:
String s = scan.next();//接收控制檯輸入的各種數據類型
String s = scan.nextLine();//接收控制檯輸入的各種數據類型
next和nextLine的區別是前者接收的字符串到第一個空格爲止後者接收的字符串可以包含空格到回車爲止
double d = scan.nextDouble();
如果想輸入一個字符可以利用字符串的charAt(index)方法。
例如char ch = scan.next().charAt(0);
也可以直接寫作 char ch = new Scanner(System.in).next().charAt(0);
**-----數據類型的輸入類型-----**
整型 int a=new Scanner(System.in).nextInt();
浮點 float b=new Scanner(System.in).nextFloat();
浮點 double b=new Scanner(System.in).nextDouble();
字符串String s=new Scanner(System.in).next();
String s=new Scanner(System.in).nextLine();
得到字符的方法
char ch = new Scanner(System.in).next().charAt(0);
=========================================================
7.部分常用的數學函數
(1)System.out.println(Math.PI);//圓周率
(2)System.out.println(Math.abs(-5));//得到數字的絕對值
(3)System.out.println(Math.ceil(5.0));//得到向上取整的double值
(4)System.out.println(Math.floor(5.9));//得到向下取整的double值
(5)System.out.println(Math.max(5, 6));
(6)System.out.println(Math.pow(3, 2));//求m的n次方
(7)System.out.println(Math.sqrt(16));//開方
(8)System.out.println((int)(Math.random() * 10));//隨機得到0~1之間的小 數
//得到一定範圍的隨機整數2~99
//Math.random() * (大 - 小 + 1) + 小
(9)int num = (int)(Math.random() * 98 + 2);
========================================================
三、數組
1、概念
指一組數據的集合數組中的每個數據被稱爲元素。數組中可存放任意類型的數據但同一個數組內的存放的元素類型必須一致。
數組可分爲一維數組、多維數組。
================================================
2、數組的定義
(1)數據類型 數組名[] = new 數據類型[長度];
注意數組在使用前必須定義長度
使用數組名[下標] = 值;
(2)數據類型 數組名[] = {值1,值2,值3...};
定義數組時給定值那麼數組的長度由值的個數決定
(3)數組類型 數組名[] = new 數據類型[]{值1,值2,值3...};
注數組的下標的從0開始的同一數組的類型中各單元值必須相同。
數組中的每個元素都有一個索引也稱爲角標通過角標訪問數組中元素數組中最小的索引爲0最大爲“數組的長度減1”即“length-1”
注數組的索引範圍爲0---length-1
=================================================
3、演示
Public class C{
Public static void main(String[] args){
Int [] arr; //聲明變量====int[] arr=new int[3]
Arr=new int[3]; //創建數組對象
System.out.println(“arr[0]=”+arr[0]); //通過角標訪問數組中第1個元素
System.out.println(“arr[1]=”+arr[1]); //訪問數組中第2個元素
System.out.println(“arr[2]=“+arr[1]); //訪問數組中第3個元素
System.out.println(“數組的長度爲”+arr.length);
}
}
//程序中可通過“數組名.length”獲取數組的長度即元素的個數。
注從打印結果可以看出數組中的三個元素初始值都爲0當數組被成功創建後數 組中元素會自動賦予一個默認值根據元素類型的不同默認初始值也不盡相 同。若不想使用默認值可直接賦值。
**-----數組-----**
Int[] arr=new int[3];//定義可以存儲3個整數的數組
-----arr[0]=0;//爲第一個元素賦值爲0
-----arr[1]=1;//爲第二個元素賦值爲1
-----arr[2]=2;//位第三個元素賦值爲2
System.out.println(“arr[0]=”+arr[0]);
System.out.println(“arr[1]=”+arr[1]);
System.out.println(“arr[2]=“+arr[2]);
System.out.println(“數組的長度=”arr.length);
=================================================
4、數組的靜動態聲明並使用
(1)動態初始化當只指定數組長度時系統自動爲元素賦初值的方式。
(2)靜態初始化(常用)定義數組的同時就爲數組的每個元素賦值。方式如下
*、類型[] 數組名=new 類型[]{1,2,3,4,…..};
例int[] stu=new int[]{1,2,3,4}
**、類型[] 數組名={1,2,3,4,……};
例int[] stu={1,2,3,4};
=================================================
5、數組的常見操作
(1)數組的遍歷
依次訪問數組的每一個元素。
Int[] arr={1,2,3,4}; //定義數組
----for(int i=0;i<=arr.length;i++){
//使用for循環遍歷數組的元素
System.out.println(“arr[i]=”arr[i]);
//通過索引訪問元素
}
(2)最值得獲取
求數組最大值getMax()方法。該方法中定義了一個臨時變量max用於記住數組的 最大值。
(3)數組的排序
操作數組時經常需要對數組中的元素進行排序。比較常見的排序方式有冒泡排序、查找排序等。
==================================================