2016年12月3日 星期六
用四個相同型態的變數傳遞到Args()函數中,並計算總和
package tw.leonchen.myproject.oop.array;
/*
 * (型態... 參數名稱)==>用再傳相同型態,但個數不同時
 * 傳遞過來的參數會轉成陣列儲存
 * EX:用四個相同型態的變數傳遞到Args()函數中,並計算總和
 * 
 */
public class TestVarArgs {
 public void Args(int ...num){  //傳遞的參數會轉為一維陣列
  int total=0;
  for(int i=0;i<num.length;i++){ //由於是陣列,因此需要用for迴圈帶出
   total+=num[i];
  }
  System.out.println("total="+total);
 }
 
 public static void main(String[] args) {
  
  TestVarArgs arg1=new TestVarArgs();
  
  arg1.Args(1,2,3,4); //只要是傳遞int型態的都可,不管有無參數
  //arg1.Args(1); //如果再呼叫一次,它會另外計算結果,不會累加
 }
}
String判別是否符合條件
package tw.leonchen.myproject.oop;
/* 判斷字串:abc
 * (a)是否符合a-z範圍,且只有一個字母
 * (b)是否符合a-z範圍,且只有三個字母
 * 
 * 判斷字串:M123
 * (a)是否有1個字母為[a-zA-Z],3個字為0~9
 * (b)是否有1個字母為[a-zA-Z]且不是def,3個字為0~9
 * (c)是否有1個字母為[def]之外的,3個字為0~9
 */
public class TestString2 {
public static void main(String[] args) {
 String data="abc";
 boolean flag1=data.matches("[a-z]"); 
 //是否有1個字母為a-z(因為後面沒寫{}代表1)
 System.out.println(flag1);
  
 boolean flag2=data.matches("[a-z]{3}"); //是否有三個字母為a-z
 System.out.println(flag2);
  
 String exp="M123";
 //[^def]代表是除了def外的字元
 boolean flag3=exp.matches("[a-zA-Z]{1}[0-9]{3}");
        //是否有1個字母為[a-zA-Z],3個字為0~9
 boolean flag4=exp.matches("[a-zA-Z && [^def]]{1}[0-9]{3}");
        //是否有1個字母為[a-zA-Z]且不是def,3個字為0~9
 boolean flag5=exp.matches("[^def]{1}[0-9]{3}");
        //是否有1個字母為[def]之外的,3個字為0~9
  System.out.println(flag3);
  System.out.println(flag4);
  System.out.println(flag5); 
 }
}
2016年12月2日 星期五
ContinueLabel
package tw.leonchen.myproject.flowcontrol.loop;
/*
 * break and continue label
 */
public class TestContinueLabel 
{
 public static void main(String[] args){
 test: 
 for(int i=1;i<=5;i++){
 for(int j=1;j<=5;j++){
  if(i==2 && j==3){
  continue test;  //會回到最接近標籤的迴圈(i),i+1=3後繼續執行迴圈
  // continue ; //會回到當層迴圈的起頭j+1=4後再繼續執行迴圈
  }
  System.out.println("i="+i+" j="+j);  
 }
}
   System.out.println("finished");
   
}
}
BreakLabel
package tw.leonchen.myproject.flowcontrol.loop;
/*
 * break  label
 */
public class TestBreakLabel 
{
 public static void main(String[] args)
 {
test:for(int i=1;i<=5;i++){
 for(int j=1;j<=5;j++){
 if(i==2 && j==3){
 break test ; 
//test是個標籤,當break test時
//返回至test標籤處,之後整個test區塊不執行而跳過
//所以這個程式System.out.println("i="+i+" j="+j);不會被執行。 // break; //如果break沒加標籤test就只是跳離當層迴圈(j),回到i迴圈+1從i=3開始繼續執行 } System.out.println("i="+i+" j="+j); } } System.out.println("finished"); } }
//所以這個程式System.out.println("i="+i+" j="+j);不會被執行。 // break; //如果break沒加標籤test就只是跳離當層迴圈(j),回到i迴圈+1從i=3開始繼續執行 } System.out.println("i="+i+" j="+j); } } System.out.println("finished"); } }
訂閱:
意見 (Atom)