JavaSE-04 Struct语法结构

JavaSE

四、Struct语法结构

  1. ShunXunDemo:顺序结构
		//顺序结构就按顺序呗
        public static void main(String[] args) {
            System.out.println("hello1");
            System.out.println("hello2");
            System.out.println("hello3");
        }
  1. 选择结构

​ 2.1if结构

  • ifDemo1:if单选择结构if
        public static void main(String[] args) {
                Scanner scanner = new Scanner(System.in);
                System.out.println("请输内容:");
                String s = scanner.nextLine();

                //equals:判断字符串是否相等,不用"="
                if(s.equals("Hello")){
                    System.out.println(s);
                }

                System.out.println("End");
                scanner.close();
            }
  • ifDemo2:if的双选择结构if …else
        public static void main(String[] args) {
                //考试分数大于等于60是及格,小于60不及格
                Scanner scanner = new Scanner(System.in);
                System.out.println("请输入成绩:");

                int score = scanner.nextInt();

                if(score>=60){
                    System.out.println("及格");
                }else{
                    System.out.println("不及格");
                }

                scanner.close();
            }
  • ifDemo3:if多选择结构if…else if…else
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入成绩:");

            int score = scanner.nextInt();

            if(score==100){
                System.out.println("恭喜,是满分!");

            }else if (score <100 && score >= 90){
                System.out.println("A");
            }else if (score <90 && score >= 80){
                System.out.println("B");
            }else if (score <80 && score >= 70){
                System.out.println("C");
            }else if (score <70 && score >= 60){
                System.out.println("D");
            }else if (score <60 && score >= 0){
                System.out.println("A");
            } else {
                System.out.println("成绩不合法");
            }
			 scanner.close();
        }    
        /*
        1、分数的不在0-100的也要考虑,为不合法,写程序的时候就要想到所有的情况,不然后续修改bug很麻烦
        2、只要满足了一个else if,其他的else if就不执行了
         */

​ 2.2Switch结构

  • SwitchDemo1:多选择结构
        public static void main(String[] args) {
            //case 穿透现象  swith 匹配一个值

            char grade = 'A';

            switch(grade){
                case 'A':
                    System.out.println("优秀");
                    break;//不写break就会把后面的全部输出来,最好都加上
                case 'B':
                    System.out.println("良好");
                    break;
                case 'C':
                    System.out.println("及格");
                    break;
                case 'D':
                    System.out.println("再接再厉");
                    break;
                case 'E':
                    System.out.println("没救了");
                    break;
                default:
                    System.out.println("未知等级");
            }
        }
            /*
            语法:switch(expression){
                    case value://记得是冒号!!
                    执行语句;
                    break;

                    case value:
                    执行语句;
                    break;

                    default:
                    执行语句;
             */
  • SwitchDemo2:反编译
        public static void main(String[] args) {
            String name = "fenfen";
            //jdk7才支持的新特征,表达式结果可以是字符串

            //反编译  java--class(字节码文件)
            switch (name){
                case "yueyue":
                    System.out.println("yueyue");
                    break;
                case"fenfen":
                    System.out.println("fenfen");
                    break;
                default:
                    System.out.println("做咩啊");

            }
            /*反编译操作方式:
            把out里面的class文件利用idea复制到src里面就是可以看到反编译的文件了,后缀是class
            发现switch中反编译后:switch是通过hashCode()和equals去查找中文对应的哈希值看下匹不匹配
             */
        }
		//反编译源码
         public static void main(String[] args) {
            String name = "fenfen";
            byte var3 = -1;
            switch(name.hashCode()) {
            case -1278140000:
                if (name.equals("fenfen")) {
                    var3 = 1;
                }
                break;
  1. 循环结构

​ 3.1while结构

  • WhileDemo1:基本while语法
         public static void main(String[] args) {
            //输出1-100
            int i = 0;
            while (i<100){
                i = i+1;
                System.out.println(i);
            }
        }
  • WhileDemo2:死循环
         public static void main(String[] args) {
            while(true){
                /*死循环
                一般用在等待客户端连接
                服务器监听响应
                定时检查任务
                 */
            }
        }
  • WhileDemo3:写一个1+2+…+100的等差数列求和
        public static void main(String[] args) {
            //计算1+2+3+...+100

            int i =0;
            int sum = 0;
            while (i<=100){
                sum =sum+i;
                i = i+1;

            }
            System.out.println(sum);
        }

​ 3.2DoWhile结构

  • DoWhileDemo2:while和dowhile的区别
         public static void main(String[] args) {
            //用while:不会输出a,直接不走循环了
            int a = 0;
            while(a<0){
                System.out.println(a);
                a++;
            }
            System.out.println("=======================");

            //用dowhile:输出a=0,至少走一次循环
            do{
                System.out.println(a);
                a++;
            }while(a<0);
        }

​ 3.3For结构

  • ForDemo1:基本for写法(和while比较)
        public static void main(String[] args) {

            int a = 1;//初始化条件
            while(a<100){//条件判断
                System.out.println(a);//循环体
                a+=1;//迭代
            }
            System.out.println("while循环结束");

            //for (初始值,布尔值,更新),即初始化、条件判断、迭代
            for(int i = 1;i<100;i++){//快捷键:100.for加上tab键
                System.out.println(i);
            }
        }
  • ForDemo2:写个100以内的奇数和偶数的和
        public static void main(String[] args) {

            int oddSum = 0;//定义奇数的和
            int evenSum = 0;//定义偶数的和

            for (int i = 0; i <= 100; i++) {
                if(i%2!=0){//用模运算
                    oddSum+=i;
                }else{
                    evenSum+=i;
                }
            }
            System.out.println("奇数的和:"+oddSum);
            System.out.println("偶数的和:"+evenSum);
        }
		//for搭配if...else一起写
  • ForDemo3:写个输出1-1000之间能被5整数的数,并且每行输出3个
        public static void main(String[] args) {

            for (int i = 0; i <= 1000; i++) {
                if(i%5==0){
                    System.out.print(i+"\t");
                }

                if(i%(5*3)==0){
                    System.out.print("\n");//或者System.out.println();
                }

                //printin 输出会换行
                //print 输出不会换行
            }
        }
  • ForDeom4:写个九九乘法表
         public static void main(String[] args) {
               /*
                1*1=1
                2*1=2    2*2=4
                3*1=3    3*2=6    3*3=9
                4*1=4    4*2=8    4*3=12    4*4=16
                5*1=5    5*2=10    5*3=15    5*4=20    5*5=25
                6*1=6    6*2=12    6*3=18    6*4=24    6*5=30    6*6=36
                7*1=7    7*2=14    7*3=21    7*4=28    7*5=35    7*6=42    7*7=49
                8*1=8    8*2=16    8*3=24    8*4=32    8*5=40    8*6=48    8*7=56    8*8=64
                9*1=9    9*2=18    9*3=27    9*4=36    9*5=45    9*6=54    9*7=63    9*8=72    9*9=81
                 */


                for (int i = 1; i <= 9; i++) {
                    for (int j = 1; i>=j; j++) {
                            System.out.print(i + "*" + j +"="+(i*j)+"\t");
                        }
                    System.out.println();
                    }
                }
                 /*
                总结:
                ①两层for循环
                ②内循环中i>=j的约束
                ③内循环完后换行sout的使用
                 */
            }
  • ForDeom5:在遍历数组和集合上的使用
        public static void main(String[] args) {
            //①普通写法
            int[] numbers = {10,20,30,40,50};//定义了一个数组


            for (int i =0;i<5;i++){
                System.out.println(numbers[i]);
            }
            System.out.println("========================");

            //②指针抽象一点的写法:遍历数组中的元素
            for (int x:numbers){//x是内置的一个指针
                System.out.println(x);
            }
        }
  1. break、continue

​ 4.1break

  • BreakDemo:break基本用法
        public static void main(String[] args) {
            int i =0;
            while(i<100) {
                i++;
                System.out.println(i);
                if (i == 30) {
                    break;//30后面就不干了,跳出这个循环
                }
            }
                System.out.println("123");

        }

​ 4.2continue

  • ContinueDemo:continue基本用法
         public static void main(String[] args) {
            int i =0;
            while (i<100){
                i++;
                if(i%10==0){
                    System.out.println();
                    continue;//立马会跳到循环最开始的地方,终止某次循环,后面的这一程序不执行
                }
                System.out.print(i);
            }
         }

​ 4.3带标签的continue

  • LabelDemo:标签的用法
         public static void main(String[] args) {
            //打印101-150之间所有的质数
            int count = 0;

            outer:for(int i = 101;i<150;i++){   //outer是标签
                for(int j = 2;j<i/2;j++){
                    if(i%j==0){
                        continue outer;//返回到标签的位置,可以跳到指定循环处,不一定就跳出这个循环而已
                    }
                }
                System.out.print(i+" ");
            }
        }

你可能感兴趣的:(java,java-ee,算法)