星期一, 10月 14, 2013

2013IT鐵人賽-29-Java12-改變程式執行的流程break, continue

2013IT鐵人賽-29-Java12-改變程式執行的流程break, continue




前一篇的文章 2013IT鐵人賽-27-Java11-迴圈敘述 我們介紹了迴圈敘述, 使用了 for / while / do ~ while 的方式來執行迴圈敘述.  今天我們來練習如何改變程式執行的流程.


原則上迴圈的執行都有一定的流程, 但是有的時候為了需求可能會變更執行的流程. 今天我們就來練習 break 以及 continue 兩個指令.


break 指令主要用來強制結束程式, 並跳出迴圈.


語法如下:


break;


今天我的練習在第2個裝置練習(請見 2013IT鐵人賽-16-git04-git基礎練習git pull 與第2裝置使用 的內容).


首先進入我們的 git 資料夾 /home/max/2013ironman (請按自己的設定調整 git 所在資料夾)
>cd    /home/max/2013ironman


將 GitHub  上面的資料同步回來
> git  pull  origin master
From https://github.com/sakanamax/2013ironman
* branch            master     -> FETCH_HEAD
Already up-to-date.


那我們就開始練習吧 ^_^


進入到 java 的練習資料夾
> cd   /home/max/2013ironman/java/


建立一個 java 原始檔如下
> cat   Basic_018_break.java
//這個範例我們練習利用 break 終止迴圈
//這邊嘗試匯入 java.io.* 來使用BufferReader


import java.io.*;
class Basic_018_break {
// 這邊因為使用BufferReader, 所以要 throws IOException
public static void main(String[] args) throws IOException
{
System.out.println("請問要在第幾次終止迴圈呢? (1 ~ 10)");
//產生一個 BufferedReader br 來接收輸入
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//str 由BufferedReader 的redLine()來取得使用者輸入的資料
String str = br.readLine();
//將str 轉成整數, 並宣告給 int 變數 num
int num = Integer.parseInt(str);
//建立一個 for 迴圈
for (int i=1; i <= 10; i++)
{
System.out.println("第"+i+"次的迴圈");
//如果 i 的值 等於 num 的值, 就執行 break 跳出迴圈
if ( i == num )
{
break;
}
}


}


}


編譯我們剛剛寫的 java 程式
> javac  Basic_018_break.java


執行剛剛的程式
> java  Basic_018_break
請問要在第幾次終止迴圈呢? (1 ~ 10)
8
第1次的迴圈
第2次的迴圈
第3次的迴圈
第4次的迴圈
第5次的迴圈
第6次的迴圈
第7次的迴圈
第8次的迴圈



這邊可以看到, 如果我們輸入 8 就會在第8次的迴圈終止.  ^__^



接下來我們來練習 continue
continue 指令可以讓目前執行中的迴圈暫時停住不往下執行.  然後回到迴圈繼續下一個執行.


語法如下:


continue;


建立一個 java 原始檔如下
> cat   Basic_019_continue.java
//這個範例我們使用 continue 來練習改變迴圈執行流程
//這邊嘗試匯入 java.io.* 來使用BufferReader
import java.io.*;
class Basic_019_continue {
// 這邊因為使用BufferReader, 所以要 throws IOException
public static void main(String[] args) throws IOException
{
System.out.println("要跳過第幾次的處理 (1~10)");
////產生一個 BufferedReader br 來接收輸入
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//str 由BufferedReader 的redLine()來取得使用者輸入的資料
String str = br.readLine();
//將str 轉成整數, 並宣告給 int 變數 res
int res = Integer.parseInt(str);
//建立一個 for 迴圈
for (int i=1; i<=10; i++)
{
if ( i == res)
{
//continue 會暫時停止執行, 然後回到迴圈
continue;
}
System.out.println("第"+i+"次的處理次的處理");
}


}


}


編譯我們剛剛寫的 java 程式
> javac Basic_019_continue.java


執行剛剛的程式
> java   Basic_019_continue
要跳過第幾次的處理 (1~10)
4
第1次的處理次的處理
第2次的處理次的處理
第3次的處理次的處理
第5次的處理次的處理
第6次的處理次的處理
第7次的處理次的處理
第8次的處理次的處理
第9次的處理次的處理
第10次的處理次的處理


這邊可以看到, 如果我們輸入 4 就會在第4次跳過執行指令.  ^__^


準備將相關檔案傳送到 GitHub 上面
> cd  /home/max/2013ironman/
> git  add   java/*
> git  commit  -m  "Add java break, continue files"
[master d158645] Add java break, continue files
4 files changed, 57 insertions(+)
create mode 100644 java/Basic_018_break.class
create mode 100644 java/Basic_018_break.java
create mode 100644 java/Basic_019_continue.class
create mode 100644 java/Basic_019_continue.java


> git  push  origin master
Username for 'https://github.com': 您的帳號
Password for 'https://sakanamax@github.com':  您的密碼
Counting objects: 9, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 2.28 KiB, done.
Total 7 (delta 3), reused 0 (delta 0)
To https://github.com/sakanamax/2013ironman.git
  634430f..d158645  master -> master



完成今天的練習 :-)



Fun with Day 29 ~

沒有留言: