Java筆記02
Java筆記02
1.Scanner物件
Scanner工具類用以獲取使用者的輸入。
基本語法:
Scanner s = new Scanner(System.in);
通過Scanner類的next()與nextLine()方法獲取輸入的字串,在讀取前我們一般需要使用hasNext()與hasNextLine()判斷是否還有輸入的資料。
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
//建立一個Scanner物件,接受使用者的輸入
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收: ");
//判斷使用者有沒有輸入字串
if(scanner.hasNext()){
String str = scanner.next();
//String s = scanner.nextLine(); 使用nextLine方法接收
System.out.println("輸入的內容為: "+str);
}
//關閉IO流,防止佔用資源
scanner.close();
}
}
next()與nextLine()的區別
next():
- 一定要讀取到有效字元後才可以結束輸入。
- 對輸入有效字元之前的空格會自動忽略,只有輸入有效字元後才將其後面輸入的空白作為分隔符或者結束符。
- next()不能得到帶有空格的字串。
nextLine():
- 以Enter為結束符,即可以得到使用者輸入回車前的所有字元(包括空白)。
Scanner進階:
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
//輸入多個資料,求它們的總和與平均數,每輸入一個用回車確認,通過輸入非數字來結束當前的輸入並輸出結果
Scanner scanner = new Scanner(System.in);
double sum = 0;
int m = 0;
while (scanner.hasNextDouble()){
double s = scanner.nextDouble();
m = m+1;
sum = sum+s;
System.out.println("第"+m+"次輸入了資料"+s+",當前總和為"+sum+"");
}
System.out.println("資料總和為"+sum);
System.out.println("資料平均數為"+sum/m);
scanner.close();
}
}
2.Java的基本結構
2.1順序結構
Java的基本結構就是順序結構,即按照程式的書寫順序一步一步的執行;順序結構是最簡單的演算法結構,程式碼按照由上到下的順序依次執行。
2.2選擇結構
if單選擇結構
if(布林表示式){
}
if雙選擇結構
if(布林表示式){
//滿足布林表示式
}else{
//不滿足布林表示式
}
if多選擇結構
if(布林表示式1){
//如果滿足布林表示式1,則執行該部分程式碼
}else if(布林表示式2){
//如果滿足布林表示式2,則執行該部分程式碼
}else if(布林表示式3){
//如果滿足布林表示式3,則執行該部分程式碼
}else {
//如果上述布林表示式都不滿足,則執行該部分程式碼
}
**注:**使用巢狀的if…else語句是合法的。即可以在另一個if或else if語句中使用if或者else if語句。
switch多選擇結構
switch case語句判斷一個變數與一系列值中某個值是否相等,每一個值稱為一個分支。jdk7之後switch語句也可支援String型別
(PS:IDEA2020好像可以支援拖拽開啟.class檔案了)
public class HelloWorld {
public static void main(String[] args) {
char grade = 'C';
switch (grade){
case'A':
System.out.println("優秀");
break;
case'B':
System.out.println("良好");
break;
case'C':
System.out.println("及格");
break;
case'D':
System.out.println("差");
break;
case'E':
System.out.println("退學");
break;
}
}
}
//break的意思是程式執行到當前這一case時是否停止 case穿透
2.3迴圈結構
- while迴圈
- do…while迴圈
- for迴圈
while是最基本的迴圈,它的結構為:
//大多數情況下會讓迴圈停止下來,設定一個讓表示式失效的方式 如a<0..
//少數情況下需要一直迴圈執行,如伺服器的請求響應監聽
//迴圈條件一直滿足程式就會一直執行,會造成死迴圈,平時編碼過程中應避免死迴圈。
while(判斷表示式){
//迴圈程式碼
}
//計算1-100的和
public class HelloWorld {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while (i<=100){
sum+=i;
i++;
}
System.out.println(sum);
}
}
do…while迴圈
對於while語句而言,如果不滿足條件,則不能進入迴圈。但有時候我們需要迴圈體至少執行一次,即使這個條件不滿足,所以便有了do…while
//語法結構
do{
}while(表示式);
//從語法結構就可以看出do...while與while的區別在於滿足迴圈條件後要執行的那部分程式碼的執行順序
//while先判斷後執行
//do...while先執行後判斷
for迴圈
for迴圈語句是支援迭代的一種通用結構,是最有效、最靈活的迴圈結構。for迴圈的執行次數是在執行前就確定的,語法結構:
//判斷條件為空的話就變成了死迴圈
for(起始引數;終止條件;引數的更新方式){
//迴圈內容
}
練習1.計算0-100之間奇數和偶數的和
public class HelloWorld {
public static void main(String[] args) {
int oddSum = 0;
int evenSum = 0;
//快捷鍵100.for可快速生成i從0到100自加1的for迴圈語句
for (int i = 1; i <= 100; i++) {
if(i%2 != 0){
oddSum+=i;
}else{
evenSum+=i;
}
}
System.out.println("奇數的和為"+oddSum);
System.out.println("偶數的和為"+evenSum);
}
}
練習2.用while或for迴圈輸出1-1000之間能被5整除的數,並且每行輸出三個
public class HelloWorld {
public static void main(String[] args) {
//用while或for迴圈輸出1-1000之間能被5整除的數,並且每行輸出三個
for (int i = 1; i <= 1000; i++) {
if (i%5 == 0){
System.out.print(i+"\t");
}
//每三個換行 注意print和println的區別
if (i%(5*3) == 0 ){
System.out.println();
//System.out.print("\n");
}
}
}
}
//我自己的想法是另外定義一個用於計數的引數s,用它來實現每行輸出三個,但遠沒有教程中的思路巧妙!
練習3.用for迴圈輸出九九乘法表(兩個迴圈,分別表示乘法表中的兩個數,通過限制j的迴圈範圍刪掉重複的部分,最後調整輸出結構即可)
public class HelloWorld {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j+"*"+i+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
增強for迴圈
public class HelloWorld {
public static void main(String[] args) {
int[] num = {10,20,30,40,50};
//for迴圈列印陣列
for(int i=0;i<num.length;i++){
System.out.println(num[i]);
}
System.out.println("***********************");
//增強for迴圈 遍歷num陣列,將值賦給x
for(int x:num){
System.out.println(x);
}
}
}
break,continue
- break:在任何迴圈語句的主體部分,均可用break控制迴圈的流程。break用於強行退出迴圈,不執行迴圈中剩餘的語句。(break語句也在switch語句中使用)
- continue語句用在迴圈語句體中,用於終止某次迴圈過程,即跳過迴圈體中尚未執行的語句,接著進行下一次是否執行迴圈的判定。
//break和continue的對比
public class HelloWorld {
public static void main(String[] args) {
for (int i = 0; i < 20; i++) {
if(i == 10){
//迴圈在i=10時終止
break;
}
System.out.print(i+"\t");
}
System.out.println();
for (int j = 0; j < 20; j++) {
if(j == 10){
// 跳過j=10的迴圈
continue;
}
System.out.print(j+"\t");
}
}
}
章節練習:列印三角形
public class HelloWorld {
public static void main(String[] args) {
//5行的三角形
for (int i = 1; i <= 5; i++) {
//從5開始遞減迴圈並列印空格,為了形成三角的形狀
for (int j = 5; j > i; j--) {
System.out.print(" ");
}
//接著空白列印三角形的左半部分 即第一行輸出“*" 第二行輸出"**"...
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
//接著列印三角形的右半部分,迴圈中限制條件變成j<i,目的是使三角形的第一行只有一個"*"
for (int j = 1; j < i; j++) {
System.out.print("*");
}
//每一行構建完成後換行
System.out.println();
}
}
}
//如果不理解這個思路,可以通過設定斷點Debug去看一下這個程式碼的執行流程,應該就能明白了。
相關文章
- java 學習筆記 day02Java筆記
- 閱讀筆記02筆記
- 刷題筆記02筆記
- 學習筆記02筆記
- Redis學習整理筆記02Redis筆記
- iOS學習筆記02 UIScrollViewiOS筆記UIView
- 尚矽谷Java基礎——學習程式碼和筆記_day02Java筆記
- 《Java8實戰》-讀書筆記第一章(02)Java筆記
- JavaWeb基礎-學習筆記02JavaWeb筆記
- 構建之法閱讀筆記02筆記
- vue 基礎入門筆記 02Vue筆記
- JavaScript基礎第02天筆記JavaScript筆記
- 2018-09-02學習筆記筆記
- day02_css學習筆記CSS筆記
- java 筆記Java筆記
- Task01&Task02學習筆記筆記
- 02《構建之法》閱讀筆記_2筆記
- Redis核心技術筆記01-02Redis筆記
- 【Java筆記】Java JDKJava筆記JDK
- Git 的特點—— Git 學習筆記 02Git筆記
- L02 教程 5.4 筆記 SCSS 引入 SCSS筆記CSS
- Java安全筆記Java筆記
- Java筆記-反射Java筆記反射
- Java筆記1Java筆記
- Java筆記——【Map】Java筆記
- java 筆記(草稿)Java筆記
- Java筆記-Java反射(二)Java筆記反射
- 《Java8實戰》-第五章讀書筆記(使用流Stream-02)Java筆記
- 《Java8實戰》-第三章讀書筆記(Lambda表示式-02)Java筆記
- java筆記-one(簡記)Java筆記
- Spring AOP學習筆記02:如何開啟AOPSpring筆記
- L02-8.2 筆記 記一次查錯經歷筆記
- JAVA學習筆記Java筆記
- Java筆記:方法引用Java筆記
- Java泛型筆記Java泛型筆記
- Java筆記-IO流Java筆記
- Java筆記——【List、Set】Java筆記
- (Java筆記)BigDecimal類Java筆記Decimal