day3 2021 2 3 演算法結構完整版
阿新 • • 發佈:2021-02-04
演算法結構
順序結構
從上到下執行
選擇結構
if語句大多數時候在if結構外把scanner賦值
if單選擇結構
語法:
if(布林表示式){
//如果布林表示式為true將被執行的語句
}
例項:
package com.wang.scanner; import java.util.Scanner; public class IfDemo1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("請輸入內容:"); String str = scanner.nextLine(); //equals 判斷字串是否相等 if (str.equals("hello world")) { System.out.println("yes"); } System.out.println("end"); scanner.close(); } }
if雙選擇結構
語法:
if(布林表示式){
//布林表示式為ture將執行的命令
}else{
//布林表示式為false將執行的命令
}
例項:
package com.wang.scanner; import java.util.Scanner; public class IfDemo2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("請輸入您的成績:"); double i = scanner.nextDouble(); if (i>=60){ System.out.println("及格"); }else { System.out.println("不及格"); } scanner.close(); } }
if多選擇結構
語法:
if(布林表示式1){
//如果布林表示式1為ture則執行程式碼
}else if(布林表示式2){
//如果布林表示式2為true則執行程式碼
}else if(布林表示式3){
//如果布林表示式3為true則執行程式碼
}.....
...
....
}else{
//如果以上表達式都不為true時執行該程式碼
}
例項:
package com.wang.scanner; import java.util.Scanner; public class IfDemo3 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("請輸入您的成績:"); double i = scanner.nextDouble(); if (i>=90 && i<=100){ System.out.println("A等成績"); }else if(i>=80 && i<90){ System.out.println("B等成績"); }else if (i>=70 && i<80){ System.out.println("C等成績"); }else if (i>=60 && i<70){ System.out.println("D等成績"); }else if(i>=0 && i<60){ System.out.println("E等成績"); }else{ System.out.println("成績不合法"); } scanner.close(); } }
if巢狀結構
語法:
if(布林表示式1){
//如果布林表示式1為ture則執行程式碼
if(布林表示式2){
//如果布林表示式2為true則執行程式碼
}
}
switch選擇結構
語法:
case標籤必須為字串常量或字面量
switch(expression){
case value:
//語句
break; //可選
case value:
//語句
break; //可選
//可以有人一數量的case語句
default : //可選
//語句
}
例項:
package com.wang.scanner;
import java.util.Scanner;
public class SwitchDemo1 {
public static void main(String[] args) {
//case穿透 若不寫 break 則會執行以下全部程式
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入您的成績等級(A,B,C,D):");
String grade = scanner.nextLine();
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;
default:
System.out.println("非法輸入");
}
}
}
迴圈結構
while迴圈
語法:
while(布林表示式){
//布林表示式為true執行程式碼
}
例項:
package com.wang.scanner;
public class WhileDemo1 {
public static void main(String[] args) {
int i = 0;
while (i<=100){
System.out.println(i);
i = i + 1;
}
}
}
死迴圈:
while(true){
//程式碼
}
DO While迴圈
語法:
do{
//程式碼
}whlie(布林表示式);
不論布林表示式是否為true
do裡的程式碼至少先要執行一次之後,再判斷while
例項1:
package com.wang.scanner;
public class WhileDemo1 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
do {
sum = sum + i;
i++;
}while (i<=100);
System.out.println(sum);
}
}
----------------------------------------------
輸出:
5050
例項2:
package com.wang.scanner;
public class WhileDemo1 {
public static void main(String[] args) {
int i = 101;
int sum = 0;
do {
sum = sum + i;
i++;
}while (i<=100);
System.out.println(sum);
}
}
----------------------------------------------
輸出:
101
理解兩個例項的異同
For迴圈
語法:
for(初始化;布林表示式;更新){
//程式碼
}
例項:
package com.wang.scanner;
public class ForDemo1 {
public static void main(String[] args) {
int sum = 0;
//初始化//判斷條件//迭代
for (int i = 0;i<=100;i++){
sum = sum + i;
}//先執行判斷條件,再執行程式碼,最後執行迭代!!!!
System.out.println(sum);
}
}
練習1:
package com.wang.scanner;
public class ForDemo2 {
//用for迴圈輸出1到1000之間能被5整除的數,且每行輸出三個
public static void main(String[] args) {
for (int i = 0; i <= 1000; i++) {
//求被5整除的數
if((i % 5) == 0){
System.out.print(i+"\t");
}
//三個以換行
if((i % 15) == 0){
// \n 換行
System.out.print("\n");
}
//print 不換行輸出
//println 換行輸出
}
}
}
練習2:輸出99乘法表
package com.wang.scanner;
public class 輸出99乘法表 {
public static void main(String[] args) {
for (int i = 1; i <=9; i++) {
int m = 1;
while (m<=i){
System.out.print(m+"*"+i+"="+m*i+"\t");
m++;
}
System.out.print("\n");
}
}
}
----------------------------------------------
package com.wang.scanner;
public class 輸出99乘法表 {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int m = 1; m <= i; m++) {
System.out.print(m + "*" + i + "=" + m * i + "\t");
}
System.out.print("\n");
}
}
}
For的增強
語法:
for(宣告語句:表達方式)
{
//程式碼句子
}
例項:
package com.wang.scanner;
public class ForDemo3 {
public static void main(String[] args) {
int[] numbers = {10,20,30,40,50}; //定義陣列!!
for (int x :numbers){
System.out.println(x);
}
System.out.println("=========================");
for (int i = 0;i < 5;i++){
System.out.println(numbers[i]);
}
}
}
==============================================
輸出:
10
20
30
40
50
=========================
10
20
30
40
50