Java之分支和迴圈
Java中的分支語句:
if語句:
if語句的四種寫法:
(1)
if(表示式_布林值) {
...
}
(2)
if(表示式_布林值) {
...
} else {
...
}
(3)
if(表示式_布林值) {
...
} else if(表示式_布林值) {
...
}
(4)
if(表示式_布林值) {
...
} else if(表示式_布林值) {
...
} else {
...
}
if條件語句是一個重要的程式設計語句,它用於告訴程式在某個條件成立的情況下執行某段程式,而在另一種情況下執行另外的語句。 使用if條件語句,可選擇是否要執行緊跟在條件之後的那個語句。關鍵字if之後是作為條件的“布林表示式”,如果該表示式返回的結果為true,則執行其後的語句;若為false,則不執行if條件之後的語句。if條件語句可分為簡單的if條件語句、if…else語句和if…else if多分支語句。
if語句例子:
public class GetTerm { // 建立主類 public static void main(String args[]) { // 主方法 int x = 20; // 宣告int型區域性變數 if (x > 30) { // 判斷變數x是否大於30 System.out.println("a的值大於30"); // 條件成立的輸出資訊 } else if (x > 10) { // 判斷變數x是否大於10 System.out.println("a的值大於10,但小於30"); // 條件成立的輸出資訊 } else if (x > 0) { // 判斷變數x是否大於0 System.out.println("a的值大於0,但小於10"); // 條件成立的輸出資訊 } else { // 當以上條件都不成立時,執行的語句塊 System.out.println("a的值小於0"); // 輸出資訊 } } }
switch語句:
int a = 2;
switch(a) {
case 1
...
break;
case 3
...
break;
case 5
...
break;
default
...
}
switch語句中表達式的值必須是整型或字元型,常量值1~常量值n必須也是整型或字元型。switch語句首先計算表示式的值,如果表示式的值和某個case後面的變數值相同,則執行該case語句後的若干個語句直到遇到break語句為止。此時如果該case語句中沒有break語句,將繼續執行後面case裡的若干個語句,直到遇到break語句為止。若沒有一個常量的值與表示式的值相同,則執行default後面的語句。default語句為可選的,如果它不存在,而且switch語句中表達式的值不與任何case的常量值相同,switch則不做任何處理。
switch語句例子:
public class GetSwitch { // 建立類
public static void main(String args[]) { // 主方法
int week = 2; // 定義int型變數week
switch (week) { // 指定switch語句的表示式為變數week
case 1: // 定義case語句中的常量為1
System.out.println("Monday"); // 輸出資訊
break;
case 2: // 定義case語句中的常量為2
System.out.println("Tuesday");
break;
case 3: // 定義case語句中的常量為3
System.out.println("Wednesday");
break;
default: // default語句
System.out.println("Sorry,I don't Know");
}
}
}
if switch的區別:
if語句使用場景: 針對結果是boolean型別的判斷 針對一個範圍的判斷 針對幾個常量值的判斷 switch語句使用場景: 針對幾個常量值的判斷
switch建議判斷固定值的時候用
if建議判斷區間或範圍的時候用
*用switch能做的,用if都能做,反過來則不行
Java中的迴圈語句:
(1)
for(int i=0;i<10;i++) { ... }
(2)
while(表示式_布林值) { }
(3)
do { } while(表示式_布林值);
三種迴圈語句簡單例項:
public class Test2 {
public static void main(String[] args){
int i=0;
for(;i<3;i++){
System.out.println("for:"+i);
}
while(i<6){
System.out.println("while:"+i);
i++;
}
do{
System.out.println("do:"+i);
i++;
}while(i<9);
}
}
綜合例子1:
如何輸入成績,得出評分:
import java.util.Scanner;
public class Lianxi
{
public static void main(String[] args){
int i=1;
//使用死迴圈不斷判斷
for(;i<10;i--){
Scanner scanner=new Scanner(System.in);
String str=scanner.nextLine();
int a =Integer.parseInt(str);
if(str=="55"){
i=11;
System.out.println("結束了");
}
if(a<=100&&a>80){
System.out.println("優秀");
}else if(a<=80&&a>60){
System.out.println("良好");
}else if(a<=60&&a>50){
System.out.println("尚可");
}else if(a<=50&&a>=0){
System.out.println("不可");
}else {
System.out.println("輸入有錯誤!!!");
}
}
}
}
綜合例子2:
輸出菱形
public class Var_02 {
public static void main(String args[]) {
int lineCount = 17;// 輸出的菱形有多少行,請賦值成奇數
int maxLineNum = (lineCount + 1) / 2;// 菱形最多一行
for (int i = 1; i <= maxLineNum; i++) {// 迴圈菱形數量越來越多的幾行
for (int space = 1; space <= maxLineNum - i; space++) {// 輸出空格,數量=最後一行-當前行數
System.out.print(" ");
}
for (int star = 1; star <= (i * 2) - 1; star++) {// 輸出星號,數量=行數*2-1
System.out.print("* ");
}
System.out.println();// 換行
}
int declineCount = lineCount - maxLineNum;// 計算剩下的幾行,這幾行星號的數量是遞減的
for (int i = 1; i <= declineCount; i++) {// 迴圈菱形數量越來越少的行數
for (int space = 1; space <= i; space++) {// 輸出空格,數量等於當前的行數
System.out.print(" ");
}
for (int star = 1; star <= (declineCount - i + 1) * 2 - 1; star++) {// 輸出星號,數量等於(總數-當前行數)*2-1
System.out.print("* ");
}
System.out.println();
}
}
}
補充:
foreach語句:
是for語句的特殊簡化版本,但是foreach語句並不能完全取代for語句,然而任何foreach語句都可以改寫為for語句版本。foreach並不是一個關鍵字,習慣上將這種特殊的for語句格式稱之為foreach語句。foreach語句在遍歷陣列等方面為程式設計師提供了很大的方便,語法如下所示:
for(元素變數x : 遍歷物件obj) {
引用了x的java語句;
}
例子:
public class Repetition { // 建立類Repetition
public static void main(String args[]) { // 主方法
int arr[] = { 7, 10, 1 }; // 宣告一維陣列
System.out.println("一維陣列中的元素分別為:"); // 輸出資訊
for (int x : arr) {
//foreach語句,int x引用的變數,arr指定要迴圈遍歷的陣列,最後將x輸出
System.out.println(x);
}
}
}