Java 6 語句
巢狀分支
最好不要超過三層
Switch分支
// 表示式對應一個值
switch(表示式){
case 常量1:
// 程式碼塊1
break;
case 常量2:
// 程式碼塊2
break;
default:
// 程式碼塊default
break;
}
細節:
- 表示式和常量要麼型別一致,要麼可以自動轉換
- 表示式中的返回值必須是
byte
,short
,int
,char
,enum
,String
- default是可選的
for迴圈
// 執行次數 = 迴圈條件為假時迴圈變數的值 - 迴圈變數初始值
for(迴圈變數初始化; 迴圈條件; 迴圈變數迭代){
// 迴圈體
}
細節:
-
迴圈條件返回一個boolean
-
int i = 1; for(; i<=10; ){ i++; }
-
int count = 3; for (int i = 0, j = 0; i < count; i++, j+=2){ }
-
先判斷再執行
while迴圈
迴圈變數初始化
while(迴圈條件){
// 迴圈體
// 迴圈變數迭代
}
細節:
- 先判斷再執行
do-while迴圈
迴圈變數初始化
do{
// 迴圈體
// 迴圈變數迭代
}while(迴圈條件)
細節:
- 先執行再判斷(至少執行一次)
巢狀迴圈
一般兩層,最多三層
break跳轉
hello:{
abc:{
break hello;
}
}
細節:
- break可以指定退出哪層
- 一般不用
- 沒有標籤預設跳出最近的迴圈體
continue
退出當前這一次迴圈,開始下一次迴圈
label1:{
label2:{
continue label1;
}
}
和break一樣
練習
金字塔
public class Stars {
public static void main(String[] args) {
// 迴圈輸出每一行
for (int line = 0; line<6; line++){
String kg = " ";
String stars = "*";
// 迴圈輸出空格
int num = 4-line;
while(num>0){
kg += " ";
num--;
}
// 迴圈輸出*
int star = line*2+1;
while(star>1){
stars += "*";
star--;
}
// 最後一行不用輸出空格
if(line == 5){
System.out.println(stars);
}else{
System.out.println(kg + stars);
}
}
}
}
for(int line = 1; line < 6; line++){ // line表示行
// 列印空格,不換行
for (int kg = 5-line; kg>0; kg--){
System.out.print(" ");
}
// 列印stars,不換行
for (int stars = line*2-1; stars>0; stars--){
System.out.print("*");
}
// 換行
System.out.println("");
}
D:\Java_code>java Test
*
***
*****
*******
*********
***********
空心金字塔
public class Starsair {
public static void main(String[] args) {
//
for (int line = 0; line<6; line++){
String kg = " ";
String stars = "*";
//
int num = 4-line;
while(num>0){
kg += " ";
num--;
}
//
int star = line*2+1-1;
while(star>1){
stars += " ";
star--;
}
stars += "*";
if(line == 5){
System.out.println("***********");
}else if(line == 0){
System.out.println(kg + "*");
}else{
System.out.println(kg + stars);
}
}
}
}
D:\Java_code>java Test
*
* *
* *
* *
* *
***********
public class StarsAir {
public static void main(String[] args) {
//
int totalNum = 10;
for(int line = 1; line <= totalNum; line++){
//
for (int kg = totalNum-line; kg>0; kg--){
System.out.print(" ");
}
//
for (int stars = line*2-1; stars>0; stars--){
// 第一個位置,最後一個位置,最後一行輸出*
if(stars == line*2-1 || stars == 1 || line==totalNum){
System.out.print("*");
}else{
System.out.print(" ");
}
}
//
System.out.println("");
}
}
}
水仙花數
public class Flower {
public static void main(String[] args) {
int num = 150;
int sum = 0;
for(int temp = num; temp>0;temp/=10){
int a =temp%10;
sum += a*a*a;
}
if(sum == num) System.out.println("yes");
else System.out.println("no");
}
}
注意分數!!!
public class Test {
public static void main(String[] args) {
// ***
double sum = 0;
for(int i = 1; i<=100; i++){
// ***
double unit = 1.0/i;
if(i%2 == 0) sum -= unit;
else sum +=unit;
}
System.out.println(sum);
}
}