Java學習筆記3--Java流程控制語句
Javadoc文件的生成方式
-
命令列方式(cmd)
-
javadoc -encoding UTF-8 -charset UTF-8 類名.java
-
-
IDEA方式
-
記得這段配置,否則會報錯
-encoding UTF-8 -charset UTF-8 -windowtitle "文件HTML頁面標籤的標題" -link http://docs.Oracle.com/javase/7/docs/api
-
使用者互動Scanner
-
Scanner物件
-
工具類,java.util.Scanner是Java5的新特徵,通過Scanner類來獲取使用者的輸入。
-
基本語法
-
Scanner s = new Scanner(System.in) ;
-
-
通過Scanner類的next()與nextLine()方法獲取輸入的字串,在讀取前我們一般需要使用hasNext()與hasNextLine()判斷是否還有輸入的資料。
-
next():
-
一定要讀取到有效字元後才可以結束輸入
-
對輸入有效字元之前遇到的空白,next()方法會自動將其去掉
-
只有輸入有效字元後才將其後輸入的空白作為分隔符或者結束符
-
next()不能得到帶有空格的字串
-
-
package com.JXinLove.scanner;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//建立一個掃描器物件,用於接收鍵盤資料
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方法接收:");
//判斷使用者有沒有輸入字串
if (scanner.hasNext()==true){
//使用next方式接收
String string=scanner.next();
System.out.println("輸入的內容為:"+string);
}
//使用IO流的類如果不關閉會一直佔用資源,要養成良好的習慣,將用完的資源關閉
scanner.close();
}
} -
nextLine():
-
以Enter為結束符,也就是說nextLine()方法返回的是輸入回車之前的所有字元
-
可以獲得空白
-
-
package com.JXinLove.scanner;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
//建立一個掃描器物件,用於接收鍵盤資料
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine方法接收:");
//判斷使用者有沒有輸入字串
if (scanner.hasNextLine()==true){
//使用next方式接收
String string=scanner.nextLine();
System.out.println("輸入的內容為:"+string);
}
//使用IO流的類如果不關閉會一直佔用資源,要養成良好的習慣,將用完的資源關閉
scanner.close();
}
}
-
-
順序結構
-
Java的基本結構就是順序結構,除非有特別指明,否則就一步一步執行下去。
-
順序結構是最簡單的演算法結構
-
語句與語句之間,框與框之間是按從上到下的順序進行的,它是由若干個依次執行的處理步驟組成的,它是任何一個演算法都離不開的一種基本演算法結構。
選擇結構
-
if單選擇結構
-
語法
if(布林表示式){
//如果布林表示式為true將執行的語句
}
-
-
if雙選擇結構
-
語法
if(布林表示式){
//如果布林表示式的值為true
}else{
//如果布林表示式的值為false
}
-
-
if多選擇結構
-
語法
if(布林表示式1){
//如果布林表示式1的值為true執行程式碼
}else if(布林表示式2){
//如果布林表示式2的值為true執行程式碼
}else if(布林表示式3){
//如果布林表示式3的值為true執行程式碼
}else{
//如果以上布林表示式都不為true執行程式碼
}
-
-
巢狀的if結構
-
語法
if(布林表示式1){
//如果布林表示式1的值為true執行程式碼
if(布林表示式2){
//如果布林表示式2的值為true執行程式碼
}
}
-
-
switch多選擇結構
-
語法
switch(expression){
case value:
//語句
break;//可選
case value:
//語句
break;//可選
//可以有任意數量的case語句
default://可選
//語句
}
-
迴圈結構
-
while迴圈
-
語法
while(布林表示式){
//迴圈內容
} -
布林表示式為true,迴圈一直執行下去
-
大多數情況是會讓迴圈停止下來,我們需要一個讓表示式失效的方式來結束迴圈
-
少部分情況需要迴圈一直執行,比如伺服器的請求響應監聽等
-
迴圈條件一直為true就會造成無限迴圈,我們正常的業務程式設計中應該儘量避免死迴圈,會影響程式效能或者造成程式卡死奔潰
-
思考:計算1+2+3+...+100=?
public class WhileDemo {
public static void main(String[] args) {
int i=0;
int sum=0;
while (i<=100){
sum=sum+i;
i++;
}
System.out.println(sum);
}
}
-
-
do...while迴圈
-
對於while語句而言,如果不滿足條件,則不能進入迴圈。但有時我們需要即使不滿足條件,也至少執行一次。
-
do...while迴圈和while迴圈相似,不同的是,do...while迴圈至少會執行一次。
-
語法
do{
//程式碼語句
}while(布林表示式) -
while和do...while的區別:
-
while先判斷後執行。do...while是先執行後判斷
-
do...while總是保證迴圈體會被至少執行一次!這是他們的主要差別
-
-
-
for迴圈
-
for迴圈語句是支援迭代的一種通用結構,是最有效、最靈活的迴圈結構。
-
for迴圈執行的次數是在執行前就確定的。語法如下:
for(初始化;布林表示式;更新){
//程式碼語句
} -
練習
-
計算0到100之間的奇數和偶數的和
public class ForDemo {
public static void main(String[] args) {
int oddSum = 0;
int evenSum = 0;
for (int i = 0; i <= 100; i++) {
if (i%2!=0){
oddSum+=i;
}else {
evenSum+=i;
}
}
System.out.println("奇數的和"+oddSum);
System.out.println("偶數的和"+evenSum);
}
} -
用while或for迴圈輸出1-1000之間能被5整除的數,並且每行輸出3個
//方法一:
for (int i=1;i<1001;i++){
if (i%5==0){
System.out.print(i+"\t");
}
if (i%(5*3)==0){
System.out.println();
}
}
//方法二:
int count = 0;
for (int i = 1; i <= 1000; i++) {
if (i%5==0){
System.out.print(i+"\t");
count++;
}
if (count%3==0){
System.out.println();
}
}
//方法三:
int i = 1;
int count = 0;
while (i<1001){
if (i%5==0){
System.out.print(i+"\t");
count++;
}
i++;
if (count%3==0){
System.out.println();
}
} -
列印九九乘法表
for (int j = 1; j <= 9; j++){
for (int i = 1; i <= j; i++) {
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
}
-
-
-
增強for迴圈
-
語法:
for(宣告語句:表示式){
//程式碼句子
} -
宣告語句:宣告新的區域性變數,該變數的型別必須和陣列元素的型別匹配。其作用域限定在迴圈語句塊,其值與此時陣列元素的值相等。
-
表示式是要訪問的陣列名,或者是返回值為陣列的方法。
-
-
break和continue
-
break在任何迴圈語句的主體部分,均可用break控制迴圈的流程。break用於強行退出迴圈,不執行迴圈中剩餘的語句。(break語句也在switch語句中使用)
-
-