Practice| 流程控制

weixin_30588675發表於2020-04-05

 

若整數a除以非零整數b,商為整數,且餘數為零,

我們就說a能被b整除(或說b能整除a),a為被除數b為除數,即b|a("|"是整除符號),讀作"b整除a"或"a能被b整除。

如:6 | 3,  6能被3整除 或 3能整除6。

 

if ( x = y ) {  //--->>報編譯的錯誤

  } 

 

/*
從鍵盤分別輸入年、月、日,判斷這一天是當年的第幾天 
   注:判斷一年是否是閏年的標準:
       1)可以被4整除,但不可被100整除
       2)可以被400整除
要求:使用switch case實現

class YearMonthDay{
    public static void main(String[] args){
        java.util.Scanner input = new java.util.Scanner(System.in);
        System.out.print("年:");
        int year = input.nextInt();
        
        System.out.print("月:");
        int month = input.nextInt();
        
        System.out.print("日:");
        int day = input.nextInt();
        
        int days = day;
        //月份天數的累加
        switch (month){
            case 12:
                days += 30; //前11個月份的天數
            case 11:
                days += 31;//10月份;
            case 10:
                days += 30;//9月份
            case 9:
                days += 31;//8月份
            case 8:
                days += 31;//7月份
            case 7:
                days += 30;//6月份
            case 6:
                days += 31;//5月份
            case 5:
                days += 30;//4月份
            case 4:
                days += 31;//3月份
            case 3:
                days += 28;//2月份
                if((year % 4 == 0 && year % 100 != 0 || year % 400 == 0)){
                    days++;
                }
            case 2:
                days += 31;//1月份
            
            
        }
        //if((month == 3) && (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)){
            //    days++;  行不通的,如果是month=12,它是不會走這一步的。
            //}
        
        System.out.println(year +"年" + month + "月"+ day + "日" +"至今已過" + days);
        
        
    }
}

*/


/*
2、從鍵盤分別輸入年、月、日,判斷這一天是當年的第幾天 
   注:判斷一年是否是閏年的標準:
       1)可以被4整除,但不可被100整除
       2)可以被400整除
要求:使用迴圈實現

class YearMonthDay{
    public static void main(String[] args){
        java.util.Scanner input = new java.util.Scanner(System.in);
        
        System.out.print("年:");
        int year = input.nextInt();
        System.out.print("月:");
        int month = input.nextInt();
        System.out.print("日:");
        int day = input.nextInt();
        int days = day; //累加零頭的天數;
        for(int i = 1; i < month; i++){  //累加滿月[2~month-1]的天數; 從2月開始計算;;;;
            if(i == 4 || i == 6 || i == 9 || i == 11){
                days += 30; 
                
            }else if(i == 2){   //注意注意注意,這裡是else if,寫成if就是它就會在i==4,6,9,11走else多加31天。
                if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
                days += 29;
                }else{
                    days += 28; 
                }
            }else{
                days += 31; 
            }
        
        }System.out.println(year + "年" + month +"月" + "至今已過" + days);
    }
}
*/



/*
從鍵盤分別輸入年、月、日,判斷這一天是當年的第幾天 
   注:判斷一年是否是閏年的標準:
       1)可以被4整除,但不可被100整除
       2)可以被400整除
要求:使用迴圈 + 陣列實現
*/
class YearMonthDay{
    public static void main(String[] args){
        java.util.Scanner input = new java.util.Scanner(System.in);
        System.out.print("年:");
        int year = input.nextInt();
        System.out.print("月:");
        int month = input.nextInt();
        System.out.print("日:");
        int day = input.nextInt();
        
        int days = day;
        
        int[] dayOfMonth = {31,28,31,30,31,30,31,31,30,31,30,31};//靜態初始化
        for(int i = 1;i < month;i++){
            days += dayOfMonth[i-1];
            if((i == 2) && (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)){
                days++;
            }
        }
        System.out.println(year +"年" + month + "月"+ day + "日" +"至今已過" + days + "天" + "僅剩" + (365-days) +"天");
        
    }
    
}

 

 

 

class Forloop{
    public static void main(String[] args){
        /*
        int sum = 0;
        for(int i = 1; i <=100; i++){
            sum += i;
        }
        System.out.println(sum);
        */
        
        /*
        int count = 0;
        for (int i = 1; i <= 100;i++){
            
            if(i % 3 == 0){
                System.out.print(i + "\t");
                count++;
                if(count % 5 == 0){
                    System.out.println("\n");
                }
            }
        }
        */
        //方法一
        /*
        for (int i = 1, mi = 0; i <= 1024; i*=2, mi++){
            System.out.println("2的" + mi +"方為:" + i);
        }
        2的0方為:1
        2的1方為:2
        2的2方為:4
        2的3方為:8
        2的4方為:16
        2的5方為:32
        2的6方為:64
        2的7方為:128
        2的8方為:256
        2的9方為:512
        2的10方為:1024
        */
        
        //方法二
        /*
        2的0方為:1
        2的1方為:2
        2的2方為:4
        2的3方為:8
        2的4方為:16
        2的5方為:32
        2的6方為:64
        2的7方為:128
        2的8方為:256
        2的9方為:512
        2的10方為:1024
        */
        
        int result = 0;
        for(int i = 0; result < 1024; i++){
            result = (int) Math.pow(2,i);
            System.out.println("2的" + i +"方為:" + result);
        } 
        
    }
}

 

九乘九乘法口訣

九九乘法表
1*1=1
1*2=2   2*2=4
1*3=3   2*3=6   3*3=9
1*4=4   2*4=8   3*4=12  4*4=16
1*5=5   2*5=10  3*5=15  4*5=20  5*5=25
1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36
1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49
1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64
1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81
*/
class Test10{
    public static void main(String[] args){
        //外層迴圈,一共有9行
        for(int i = 1;i <= 9; i++){
            //換行之前,要列印該行的n個式子
            /*
            當i=1, j=1,執行內層迴圈體,跳出內層
            當i=2, j=1,2
            當i=3, j=1,2,3*3
            ...
            當i=9,j=1,2,3,4,5,6,7,8,9
            */
            for(int j = 1;j <= i;j++ ){
                System.out.print(j + "*" + i + "=" + (j*i) + "\t");
            }
            System.out.println();
        }
    
    }
}

列印 質數

/*
找出1-100之間所有的素數(質數)

*/
class TestSu12{
    public static void main(String[] args){
        //方法1統計除i和它本身的約數的個數;
        /*
        for(int i = 2;i<=100; i++){
            int count = 0;
            for(int j = 2;j < i;j++){
                if(i % j == 0){ //j是i的約數
                    count++; 
                }
            }if(count == 0){
                System.out.println(i);
            }
        }
        
        
        
        for(int i = 2;i <= 100;i++){
            
            //方法二找除了1和它本身以外約數的證據,找到就停止;定義一個boolean 
            boolean flag = true;
            for(int j = 2; j<i;j++){
                if(i%j == 0){     
                    flag = false; //找到就終止這一層的迴圈;
                    break; 
                }
                
            }if(flag == true){  //注意注意這裡是 == 
                System.out.println(i);
            }
        }
        
        */
        
        for(int i = 2; i<=100;i++){
            
            int j;
            for(j = 2;j<i; j++){
                if(i%j == 0){   //滿足i%j == 0了,內迴圈從break除了 j<i
                    break;         //(i%j==0)沒有滿足過,內迴圈的結束  j==i
                }
            }if(j == i){
                System.out.println(i);
            }
        }
        
    }
}

 

列印菱形

/*                                       i    j    k 
                *                        1    4    1    
            *   *    *                   2    3    3    
        *   *   *    *    *              3    2    5    
    *   *   *   *    *    *    *         4    1    7    
*   *   *   *   *    *    *    *    *    5    0    9    
    *   *   *   *    *    *    *         1    1    7    2*(4-1)+1
        *   *   *    *    *              2    2    5    2*(4-2)+1
            *   *    *                   3    3    3    2*(4-3)+1
                *                        4    4    1    2*(4-4)+1


//方法一先列印上半部分,再列印下半部分;
class TestLingXing{
    public static void main(String[] args){
        //上半部分
        for(int i = 1; i <= 5;i++){
            for(int j = 1; j <= (5-i); j++){
                System.out.print(" ");
            }for(int k = 1; k <= (2*i-1); k++){
                System.out.print("*");
            }
            System.out.println();
        //下半部分    
        }for(int i = 1; i <= 4;i++){
            for(int j = 1;j <= i;j++){
                System.out.print(" ");
            }for(int k = 1; k <= 2*(4-i)+1;k++){
                System.out.print("*");
            }
            System.out.println();
            
        }
    }
}
*/



class TestLingXing{
    public static void main(String[] args){
        for(int i = 1; i <= 9;i++){
            //每一行:(1)列印空格(2)列印*(3)換行
            //(1)列印空格
                    //上半+下半部分 --> " "
            if(i <= 5){//i=1,j=1,2,3,4列印4次;      j <= (5-i)
                       //i=2,j=1,2,3列印3次;
                       //i=3,j=1,2列印2次;
                       //i=4,j=1列印1次;
                       //i=5,j=0不列印;
                for(int j = 1; j <= (5-i); j++ ){
                    System.out.print(" ");
                }  //括號括號括號
            }else{ //i = 6,j=1列印1次;               j <= i - 5
                   //i = 7,j=1,2列印2次;
                   //i = 8,j=1,2,3列印3次;
                   //i = 9,j=1,2,3,4列印4次;
                   
                for(int j = 1; j <= i - 5;j++){
                    System.out.print(" ");
                }                
            }
            //(2)列印*
                 //上半+下半部分 --> "*"    
            if(i <= 5){  //i=1,j=1列印1次;           j<=2*i-1
                         //i=2,j=1,2,3列印3次;
                         //i=3,j=1,2,3,4,5列印5次;
                         //i=4,j=1,2,3,4,5,6,7列印7次;
                         //i=5,j=1,2,3,4,5,6,7,8,9列印9次;
                for(int j = 1;j <= (2*i-1); j++ ){
                    System.out.print("*");
                }
                
            }else{ //i=6,j=1,2,3,4,5,6,7列印7次;     j<=2*(9-i)+1
                   //i=7,j=1,2,3,4,5列印5次;
                   //i=8,j=1,2,3列印3次;
                   //i=9,j=1列印1次;
                   
                for(int j = 1; j <= 2*(9-i)+1;j++){
                    System.out.print("*");
                }
            }
            //(3)列印空格
            System.out.println();
        }
            
    }
}



/*

                *                    
            *        *                
        *                *            
    *                        *        
*                                *    
    *                        *        
        *                *            
            *        *                
                *                    

//內迴圈*只列印首尾,在上邊圖形的基礎上做下判斷即可。
class TestLingXing{
    public static void main(String[] args){
        //上半部分
        for(int i = 1; i <= 5;i++){
            for(int j = 1; j <= (5-i); j++){
                System.out.print(" ");
            }for(int k = 1; k <= (2*i-1); k++){
                if(k == 1 || k == (2*i-1)){
                    System.out.print("*");
                }else{
                    System.out.print(" ");
                }
            }
            System.out.println();
        //下半部分    
        }for(int i = 1; i <= 4;i++){
            for(int j = 1;j <= i;j++){
                System.out.print(" ");
            }for(int k = 1; k <= 2*(4-i)+1;k++){
                if(k == 1 || k == 2*(4-i)+1){
                    System.out.print("*");
                }else{
                    System.out.print(" ");
                }
            }
            System.out.println();
            
        }
    }
}
*/

 

轉載於:https://www.cnblogs.com/shengyang17/p/9971081.html