for循环结构

Java流程控制

1.顺序结构
Java的基本结构就是顺序结构,代码是按照顺序一句一句来执行
顺序结构是最简单的算法结构
2.选择结构
if单选择结构:
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}

if双选择结构:
if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}

if多选择结构:
if(){
}else if(){
}else if(){
}else if(){
}else{
}

public class If {
    public static void main(String[] args) {
        //分数大于60就是及格,分数小于60就是不及格
        System.out.println("请输入成绩:");
        Scanner scanner = new Scanner(System.in);
        /*
        if语句至少有1个else语句,else语句在所有的else if语句之后
        if语句可以有若干个else if语句,他们必须在else语句之前
        一旦其中一个else if语句检测为true,其他的else if以及else语句都将跳过执行
         */
        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(布尔表达式1){
//如果布尔表达式1的值为true执行代码
if(如果布尔表达式2){
//如果布尔表达式2的值为true执行代码
}
}

switch多选择结构:
JDK7新特性expression表达式可以是字符串,因为字符串的本质还是数字
反编译 Java---class(字节码文件)-----反编译(IDEA)
switch(expression){
case value:
//语句
break;//可选
case value:
break;//可选
//可以有任意数量的case语句
default: //可选
//语句
}

public class Switch {
    public static void main(String[] args) {
        //case穿透
        char grade = 'A';
        switch (grade){
            case 'A':
                System.out.println("优秀");
                break;//没有break的话会形成case穿透,下面所有的case都会输出
            case 'B':
                System.out.println("良好");
            case 'C':
                System.out.println("及格");
            case 'D':
                System.out.println("再接再厉");
            case 'E':
                System.out.println("挂科");
            default:
                System.out.println("未知等级");
        }
    }
}

3.循环结构:break & continue
while循环:
while(布尔表达式){
//循环内容
}
只要布尔表达式为true,循环就会一直执行下去
到多数情况会让循环停止下来,需要一个表达式失效的方式来结束循环
少数情况需要循环一直执行下去,如服务器的请求响应监听
循环条件为true会造成无限循环(死循环),正常业务逻辑应该避免死循环

public class While {
  public static void main(String[] args) {
      //输出1-100
      int i = 0;
      while (i < 100){
          i++;
          System.out.println(i);
      }
  }
}
public class DoWhile {
    public static void main(String[] args) {
        //死循环
        while (true){
            //等待客户端连接
            //定时检查
            //........
        }
    }
}

while循环计算1到100的和:

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

do...while循环
对于while循环如果不满足条件则不能进入循环,但有时候需要不满足条件也至少执行一次
do...while循环和while循环相似,不同的是,do....while循环至少会执行一次
do{
//代码语句
}while(布尔表达式)

while与do...while的区别
while先判断后执行,do...while是先执行后判断
do...while总是保证循环体会被至少执行一次

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

for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构
for循环执行的次数在执行前就确定的。

for(初始化;布尔表达式;更新){
      //代码语句
    }
public class ForCycle {
    public static void main(String[] args) {
             //初始化    //条件判断 //迭代
        for (int i = 1; i <= 100; i++) {
            System.out.println(i);
        }
        System.out.println("for循环结束");
        /*
        关于for循环有几点说明:
        最先执行初始化步骤,可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句
        然后,检测布尔表达式的值,如果为true,循环体被执行,如果为false,循环终止,开始执行循环体后面的语句
        执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)
        再次检测布尔表达式,循环执行上面的过程
         */
    }
}
for(; ;){}  //死循环

计算0到100之间奇数、偶数的和分别为多少

public class For {
    public static void main(String[] args) {
        //计算0到100之间的奇数和偶数的和
        int oddSum = 0;
        int evenSum = 0;
        for (int i = 0; i <= 100; i++) {
            if (i % 2 != 0){    //奇数判断
                oddSum = oddSum + i;
            }else{
                evenSum = evenSum + i;  //偶数判断
            }
        }
        System.out.println("奇数的和:" + oddSum);
        System.out.println("偶数的和" + evenSum);
    }
}

用while或for循环输出1-100之间能被5整除的数,并且每行输出3个

public class DoWhile {
    public static void main(String[] args) {
        //用while或for循环输出1-100之间能被5整除的数,并且每行输出3个
        for (int i = 1; i <= 100; i++) {
            if (i % 5 == 0){
                System.out.print(i + "\t");
            }
            if (i % (5*3) == 0){    //每3个换一行
                System.out.println();   //与这种写法结果一样都是输出完换行System.out.print("\n");
                //println输出完换行
                //print输出完不换行
            }
        }
    }
}

Java5中引入了用于数组的增强型for循环

for循环打印9*9乘法表

/*
打印9*9乘法表
 */
public class ForTable {
    public static void main(String[] args) {
        //1.先打印第一列
        //2.把固定的1用一个循环包起来
        //3.去掉重复项
        //调整样式
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j + "*" + i + "=" + i*j + "\t");
            }
            System.out.println();
        }
    }
}

增强for循环

用于数组或集合的for循环

public class StrongFor {
    public static void main(String[] args) {
        int[] numbers = {10,20,30,40,50};//定义了一个数组
        //遍历数组的元素
        for (int x:numbers){
            System.out.println(x);
        }
    }
}

break、continue

break用于强行退出循环,不执行循环中剩余语句

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

public class BreakCycle {
    public static void main(String[] args) {
        int i = 0;
        while(i<100){
            if (i == 30) {
                break;
            }
            i++;
            System.out.println(i);
        }
        System.out.println("跳出while循环");
    }
}
public class ContinueCycle {
    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+"\t");
        }
    }
}

打印三角形:5行

public static void main(String[] args) {
        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();
        }
    }

Java方法:

Java方法是语句的集合,是解决一类问题有序步骤组合

//main方法
    public static void main(String[] args) {
        //实际参数:实际调用传递的参数
        int add = add(1, 2);
    }

    //加法
	//形式参数用来定义方法
    public static int add(int a,int b){
        return a + b;
    }

方法的定义:

方法包含方法头和方法体

修饰符 返回值类型 方法名(参数类型 参数名){

​ ...

​ 方法体

​ ...

​ return 返回值;

}

修饰符是可选的,方法可能有返回值,参数也是可选

方法调用

对象名.方法名(实参列表)

Java支持两种调用方法的方式,根据方法是否返回值来选择

当方法返回一个值得时候,方法调用通常被当做一个值,例如:

int larger = max(30,40);

如果方法返回值是void,方法调用一定是一条语句,例如:

System.out.println("Hello,World!")

两个数比较大小,调用方法:

public static void main(String[] args) {
        int max = max(10,20);
        System.out.println(max);
    }
    public static int max(int a,int b){
        int result = 0;
        if (a == b){
            System.out.println("a == b");
            return 0 ;
        }
        if(a > b){
            result = a;
        }else{
            result = b;
        }
        return result;
    }

方法的重载:

重载就是在一个类中,有相同的方法名,但是形式参数的类型或数量不同

方法重载的规则:

​ 方法名称必须相同

​ 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同)

​ 方法返回类型可以相同也可以不同

仅仅返回类型不同不足以成为方法的重载

实现底层逻辑:编译器根据调用方法的参数个数,参数类型等逐个去匹配

posted @ 2022-07-24 13:10  冷月_1991  阅读(85)  评论(0)    收藏  举报