栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础(顺序结构)学习笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础(顺序结构)学习笔记

Java基础 顺序结构
  • JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行

  • 顺序结构是最简单的算法结构

  • 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个一次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构

选择结构
  • if单选择结构

    我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序种用if语句来表示

    public class IfTest1 {
        public static void main(String[] args) {
                    
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入内容");
            String str = scanner.nextLine();
            //equals:判断字符串是否相等
            if(str.equals("hello")){
                System.out.println(str);
            }
            System.out.println("end");
            scanner.close();
        }
    }
  • if双选择结构

    需要有两个判断情况,创建双选择结构,使用if(){}else{}结构

    import java.util.Scanner;
    ​
    public class IfTest02 {
                
        public static void main(String[] args) {
            //考试分数大于60分及格,小于60分为不及格
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入成绩");
            int score = scanner.nextInt();
            if(score > 60 ){ //设置score及格分数判断输入分数是否及格如果及格执行”成绩及格语句“否则else"成绩不及格"语句执行
                System.out.println("成绩及格"); 
            }else{
                System.out.println("成绩不及格");
            }
            scanner.close();
        }
  • if多选择结构

    我们发现双If的代码不符合实际情况,真是的情况还可能存在ABCD,存在区间多级判断。比如90-100是A,80-90是B,...等 所以我们需要一个多选择结构来处理这类问题

    import java.util.Scanner;
    ​
    public class IfTest04 {
        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("成绩不及格");
            }else{
                System.out.println("成绩不合法");
            }
            scanner.close();
        }
    }
  • 嵌套的if 结构

    使用嵌套的if...else语句是合法的。也就是说你可以在另一个if 或者else if 语句中使用if 或者else if语句。你可以像if语句一样嵌套else if ...else.

    public class IfTest05 {
        public static void main(String[] args) {
            int num1 = 57;
            int num2 = 388;
            int num3 = 544;
    ​
    ​
            if (num1 < num2) { //1<2
                if (num2 < num3) {  //1<2,2<3
                    System.out.println(num1 + "," + num2 + "," + num3);
                } else if (num1 < num3) {//1<2,3<2,1<3
                    System.out.println(num1 + "," + num3 + "," + num2);
                } else { //1<2,3<2,3<1
                    System.out.println(num3 + "," + num1 + "," + num2);
                }
            } else { //2<1
                if (num3 < num2) {
                    System.out.println(num3 + "," + num2 + "," + num1);
                } else if (num1 < num3) {//2<1,2<3,1<3
                    System.out.println(num2 + "," + num1 + "," + num3);
                } else {
                    System.out.println(num2 + "," + num3 + "," + num1);
                }
            }
        }
    }
  • switch多选择结构

    多选择结构还有一个实现方式就是switch case语句

    switch case 语句判断一个变量与一些列值中某个值是否相等,每个值称为一个分支。

    switch 语句中的变量类型可以是:

    • byte、short、int或者char

    • 从Java SE 7开始

    • switch 支持字符串String类型了

    • 同时case标签必须为字符串常量或者字面量

    public class SwitchTest {
        public static void main(String[] args) {
            
            
            char grade = 'C';
    ​
            switch (grade){
                case'A':
                    System.out.println("good");
                    break;//如过不输入break破坏,case将会穿透
                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("输入错误");
            }
        }
    }
package com.yangchaofan.day02.struct;
​
public class SwitchTest2 {
    public static void main(String[] args) {
        String str = "元旦快乐";
            //- 从Java SE 7开始 switch 支持字符串String类型了
        //字符的本质还是数字
​
        //反编译 java ---class(字节码文件)----反编译(IDEA)  Ctrl+Shift+Alt+s
        switch (str){
            case"端午安康":
                System.out.println("端午安康");
                break;
            case"中秋快乐":
                System.out.println("中秋快乐");
                break;
            case"元旦快乐":
                System.out.println("元旦快乐");
                break;
            default:
                System.out.println("非法输入");
        }
    }
}
循环结构
  • while循环
    1. while是最基本的循环,他的结构为:

    2. 只要布尔表达为true,循环就会一致执行下去。

    3. 我们大多数情况会让循环停止下来,我们需要一个让表达式失效的 方式来结束循环。

    4. 少部分情况需要循环一直执行,比如服务器的请求响应监听等。

    5. 循环条件一直为true会造成无限循环【死循环】,我们整除的业务编程中应该尽量避免死循环,会影响程序性能或者造成程序崩溃。

      语法格式 ①初始化部分 while(②循环条件部分){ ③循环体部分; ④迭代部分; }

      执行过程: ①-②-③-④-②-③-④-②-③-④-...-②

      public class WhileTest3 {
          
          // 循环 : 在某种条件满足的情况下, 反复执行特定的代码的功能.
              
              // 4个组成部分
              // 1) 初始化语句, 作用是作准备工作.
              // 2) 循环条件部分, 作用是控制循环的生死
              // 3) 循环体部分, 被多次执行的代码
              // 4) 迭代部分, 作用是使循环趋于结束, 如果没有迭代, 循环是无限.
              
              
              // while 循环
              
          public static void main(String[] args) {
              int i = 0;
              int sum = 0;
              while(i <= 100){// 循环次数: 条件右面的值 - 初值, 如果有=再加1
                  sum = sum + i;
                  i++;
              }
              System.out.println(sum);
          }
      }
  • do...while循环
    1. 对象while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也要至少执行一次。

    2. do...while循环和while循环相似,不同的是,do...while循环至少会执行一次。

    3. while和do...while的区别:

      while先判断后执行,do...while先执行后判断,即使条件不满足也会执行一次

      do...while总是抱着循环体会被至少执行一IC,这是他们的主要差别

      语法格式 ①初始化部分; do{ ③循环体部分 ④迭代部分 }while(②循环条件部分);

      执行过程: ①-③-④-②-③-④-②-③-④-...②

      **说明: do-while循环至少执行一次循环体。**

      public class DoWhileTest {
          
          
          public static void main(String[] args) {
              int i = 0;
              int sum = 0;
              do{
                  sum = sum + i;
                  i++;
              }while(i <= 100);
              System.out.println(sum);
          }
      }

For循环
  1. 虽然所有循环结构都可以用while或者do...while表示,但Java提供了另一种语句——for循环,使一些循环结构变得更加简单。

  2. for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构。

  3. for循环执行的次数是在执行前就确定的。

    语法格式 ①初始化部分; do{ ③循环体部分 ④迭代部分 }while(②循环条件部分);

    执行过程: ①-③-④-②-③-④-②-③-④-...②

    说明: do-while循环至少执行一次循环体。

//练习1.   1000内数取余5
public class ForWhileTest4 {
    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.println();            
            }
        }
    }
}
public class WhileTest4 {
    public static void main(String[] args) {
       	int i = 0;
        while(i < 1000){
            if(i%5 == 0){
                System.out.print(i+"t");
            }i++;
            if(i%(5*3)==0){
                System.out.println();
            }
        }
    }
}
//练习2 . 99乘法表
public class ForTest2 {
    public static void main(String[] args) {
        //1.我们先打印第一列
        //2.我们把固定的1再用一个循环包起来
        //3.去掉重复项,i<=j
        //4.调整样式
        for (int j = 1; j <= 9; j++) {
            for (int i = 1; i <= j; i++) {
            System.out.print(j + "*" + i + "=" + (j * i) + "t");
        }System.out.println();
       }
    }
}
//练习三等腰三角形
public class ForTest3 {
    public static void main(String[] args) {
        for (int j = 0; j < 10; j++) {
             for (int i = 0; i < 9 - j; i++) {
                 System.out.print(" ");
        }
            for (int i = 0; i < 2  * j + 1; i++) {
                System.out.print("*");
            }
            System.out.println();
    }

}
}
public class TestTest {

    public static void main(String[] args) {
        //打印三角形 5行
        for (int i = 1; i <= 5; i++) {
            for (int j = 5; j >= i; j--) {
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            for (int j = 1; j < i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
增强For循环

1.重点使用于数组。

2.Java5引入了一种主要用于数组或集合的增强型for循环。

3.Java增强for循环语法格式如下:

for{声明语句:表达式
          代码句子
  }声明语句

4.声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值于此时数元素的值相等。

5.表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

public class ForTest4 {
    public static void main(String[] args) {
        int[] numbers = {10,20,30,40,50,};//定义一个数组


        for(int i = 0;i < numbers.length;i++){
            System.out.println(numbers[i]);
        }
        System.out.println("****************************");
        for(int x : numbers){
            System.out.println(x);
        }
    }
}
break continue

1.break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行对出循环,不执行循环中的剩余的语句。(break语句也在switch语句中使用)

2.continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定

关于goto关键字

1.goto关键字很早就在程序设计语言中出现,监管goto仍是java的一个保留字,但并未在语言中得到正式使用;java没有goto,然而,在break和continue这两个关键字身上,我们仍然能看出一些goto的影子---带标签的break和continue。

2.“标签”是指后面跟一个冒号的标识符,例如:label:

3.对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由就是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只终端当前循环,但若随同和标签使用,它们就会中断到存在标签的地方。

//break
public class BreakTest {
    public static void main(String[] args) {
        int i = 0;
        while (i < 100){
            i++;
            System.out.println(i);
            if(i==30){
                break;
            }
        }
        System.out.println("123");
    }
}//break用于强行对出循环,不执行循环中的剩余的语句
//continue语句
public class ContinueTest {
    public static void main(String[] args) {
        int i = 0;
        while (i < 100){
            i++;
            if(i%2 == 0){
                System.out.println();
                continue;
            }
            System.out.print(i);
        }
    }
}//continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定
//标签使用
public class LabelTest {
    public static void main(String[] args) {
        //打印101-150之间所有质数
        //质数是指在大于1的自然数,除了1和它本身以外不再有其他因数的自然数
​
        int count = 0;
​
        outer:for (int i = 101; i < 150; i++) {
            for (int j = 2; j < i / 2 ; j++) {
                if (i % j == 0) {
                    continue outer;
                }
            }
            System.out.print(i+ " ");
        }
    }
}
public class LoopTest {
    public static void main(String[] args) {
        //求1000以内所有质数的平均值
        int sum = 0; //求和
        int count = 0;//计数
        for (int i = 2; i < 1000; i++) {
            boolean flag = true;//假定i是质数
            //从2~i-1中任意找到一个反例,就可以推翻假设
            for(int j = 2; j < i;j++){
                if(i % j ==0){//测试某个值是否可以整除i
                    flag = false;//推翻假设
                }
            }
            if(flag){
                System.out.println(i);
                sum += i;
                count++;
            }

        }
        int avg = sum/count;
        System.out.println(avg);
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/691123.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号