崇之他和她

导航

on the third day

程序和用户交互Scanner类

scanner

structure 和结构

switch case 中break防止case穿透 没有break 所有case都会执行

JDK7以后支持case 字符串string 类型

image-20201228115141340

image-20201228115241838

java中的流程控制

  • 顺序结构

    System.out.println("顺序1");//顺序结构  按顺序执行
    //        System.out.println("顺序2");
    //        System.out.println("顺序3");
    //        System.out.println("顺序4");
    
  • 选择结构

      Scanner s = new Scanner(System.in);
    
    //        String str = s.nextLine();
    //        if(str.equals("Hello")){
    //            System.out.println("进入单选择");
    //
    //        }
    //
    //        if(str.equals("aa")){
    //            System.out.println("aa输入");
    //        }else{
    //            System.out.println("进入双选择");
    //        }
            int score  = s.nextInt();
            if(score==100){
                System.out.println("恭喜满分");
            }else if(score>100){
                System.out.println("非发分数");
            }else if(score>90){
                System.out.println("优秀");
            }else if(score>60){
                System.out.println("及格");
            }else {
                System.out.println("不及格");
            }
            s.close();
     char c = 'f';
            switch (c){
                case 'a':
                    System.out.println("you");
                    break;
                case 'b':
                    System.out.println("不好");
                    break;
                case 'c':
                    System.out.println("ztutrue");
                    break;//没有break会发生case穿透现象将所有case中的判断输出
                    default:
                        System.out.println("moren");
            }
    //多选择中的switch  JDK7以后支持String
            String str = "myname";
            switch (str){
                case "wang":
                    System.out.println(8888);
                    break;
                case "myname":
                    System.out.println(99999);
                    break;
                    default:
                        System.out.println("0000");
            }
    
  • 循环结构

    //计算1-100的和
    int i = 0;//初始化值
    int sum = 0;
    while(i<=-100){//条件判断
                sum += i;//循环体
                i++;//迭代
            }
    System.out.println("i="+i);
    
    int j =0;
    int sum2 = 0;
    do{//至少执行一次
        sum2+=j;
        j++;
    }while (j<=-100);//先执行一次然后判断条件是否满足
    System.out.println("j="+j);
    
//最重要的循环结构for
        //  初始化   条件    迭代
        for (int i = 0; i <= 100; i++) {
            System.out.println(i);
        }
        System.out.println("循环结束");

        //计算 0 - 100 之间奇数偶数的和
        int oddSum = 0;
        int evenSum = 0;
        for (int j = 0; j < 100; j++) {
            if (j % 2 != 0) {
                oddSum += j;
            } else {
                evenSum += j;
            }
        }
        System.out.println(oddSum + "(奇数)," + evenSum + "(偶数)");
        /*98
            99
            100
            循环结束
            2500(奇数),2450(偶数)*/
        //输出1-1000之间能被4整除的数,并且每行输出4个数
        for (int i = 1; i < 1000; i++) {
            if (i % 4 == 0) {
                System.out.print(i + " ");
                if (i % (4 * 4) == 0) {
                    System.out.println();
                }
            }
        }
        /*
        *   4 8 12 16
            20 24 28 32
            36 40 44 48
            52 56 60 64
        * */
        //打印99乘法表
        //1*1=1
        //2*1=2 2*2=4
        //3*1=3 3*2=6 3*3=9  ...
        //分析一共9行 行数为n 每行的等式为n组 n*(1~n)=
        System.out.println("开始打印99乘法表");
        for(int n = 1;n<=9;n++){
            for(int m = 1;m<=n;m++){
                System.out.print(n+" * "+m+" = "+(n*m)+" ");
            }
            System.out.println();
        }

        //死循环
//        for( ; ;){
//
//        }
//        while(true){
//        }

增强for循环

 int [] aa = {0,1,3,4};
        for(int x:aa){

            System.out.println(x);
        }

        //brdak 结束当前循环 继续循环外的逻辑
        int i = 0;
        while (i<100){
            if(i==30){
                System.out.println("end");
                break;
            }
            i++;
        }
        //continue 跳过当前执行,不执行下面逻辑  重新开始循环条件判断
        i=0;
        while (i<100){
            i++;
            if(i%4==0){
                System.out.println(i+"能被4整除不输出");
                continue;
            }
            System.out.println(i);
        }

//打印三角形5行
//     *    第n行n个*
//    * *
//   * * *
//  * * * *
// * * * * *

for (int k = 1;k<=5;k++){
    for(int a =1;a<=(5-k);a++){
        System.out.print(" ");
    }
    for(int l=1;l<=k;l++) {
        System.out.print(" *");
    }
    System.out.println();
}

方法的基本介绍

解决程序问题的编码

  1. 方法定义
  2. 方法重载
  3. 命令行传参数
  4. 可变参数
  5. 递归方法

方法保持首字母小写驼峰命名规则,保持原子性,一个方法做一件事,便于扩展

修饰符 返回值 方法名 (参数){ 方法体}

java都是值传递,有拷贝概念在里面

当方法名相同,程序根据参数个数及类型不同对应调用,称之为方法重载;

***可变参数,指定参数类型后在后面跟...为可变数量参数,此参数必须在参数的最后一位

递归

递归头,终止执行的条件,边界条件最后一步结束调用自己

递归体,执行的方法本身

public static void main(String[] args) {
    int ss = jc(4);
    System.out.println(ss);
}

//递归  参数基数小的时候用,开销很大,参数过大时不考虑
//阶乘1  1             1
//   2   2*1          2
//   3   3*2*1        6
//   4   4*3*2*1      24
public static int jc(int n){
    if(n == 1){ //直到n到最小值1结束调用自己
        return n;
    }else {
        return n*jc(n-1);
    }
}

posted on 2020-12-29 10:19  崇之他和她  阅读(149)  评论(0编辑  收藏  举报