day06

本文详细介绍了Java中的循环语句,包括while、do...while、for循环的使用,以及如何通过break和continue控制循环流程。此外,还展示了如何通过标签在复杂的循环结构中跳出循环。最后,讨论了方法的概念及其在程序设计中的重要性,强调了方法设计的原则。
摘要由CSDN通过智能技术生成

while循环

  1. while循环是最基本的循环

  2. 只有布尔表达式为true,循环就会一直执行下去

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

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

    package com.baidu.struct;
    ​
    public class WH1 {
        public static void main(String[] args) {
            //输出1-100
            int i=0;
           while (i<100){
                i++;
                System.out.println(i);
            }
        }
    }
  5. 计算1+2+3+......+100=?

    package com.baidu.struct;
    ​
    //高斯的故事
    public class WH2 {
        public static void main(String[] args) {
            int i=0;
            int sum=0;
    ​
            while (i<=100){
               sum=sum+i;
               i++;
    ​
    ​
            }
            System.out.println(sum);
        }
    }

do.....while循环

  • 对于while语句而言,如果不满足条件,则不能进入循环。但有时我们需要即使不满足条件,也至少执行一次

package com.baidu.struct;
​
public class DW1 {
    public static void main(String[] args) {
        int i=0;
        int sum=0;
        do {
            sum=sum +i;
            i++;
        }while (i<=100);
        System.out.println(sum);
    }
}
  • while与do.....while的区别

    1. while先判断后执行,dowhile是先执行后判断

    2. dowhile总是抱着循环体会被至少执行一次!(主要差别)

package com.baidu.struct;
​
import java.security.spec.PSSParameterSpec;
​
public class DW2 {
    public static void main(String[] args) {
        int i=0;
        while (i<0){
            System.out.println(i);
            i++;
        }
        System.out.println("--------------");
​
        do {
​
            System.out.println(i);
            i++;
        }while (i<0);
​
    }
}

for循环

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

package com.baidu.struct;
​
public class F1 {
    public static void main(String[] args) {
        int a=0;//初始化
        while (a<100){//条件判断
            System.out.println(a);//循环体
            a+=2;//迭代
        }
        System.out.println("while循环结束");
​
           // 初始化;条件判断;迭代
        for (int i=0;i<100;i++){
            System.out.println(i);
        }
        System.out.println("for循环结束");
​
​
        //死循环
        for (;;){
​
        }
​
    }
}

练习1:计算0到100之间的奇数和偶数的和

package com.baidu.struct;
​
public class F2 {
    public static void main(String[] args) {
        //练习1:计算0到100之间的奇数和偶数的和
​
​
        int oddSum=0;
        int evenSum=0;
​
        for (int i = 0; i <=100; i++) {
            if (i%2!=0){
                evenSum+=i;
            }else {
                oddSum+=i;
            }
​
        }
        System.out.println("0到100偶数的和为:"+oddSum);
​
        System.out.println("0到100的奇数和为:"+evenSum);
    }
}

练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出三个

package com.baidu.struct;
​
public class F3 {
    public static void main(String[] args) {
        //练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
        for (int i=1;i<=1000;i++){
            if (i%5==0){
                System.out.print(i+"\t");
            }
            if (i%15==0){//实现每三个数换行
                System.out.println();
            }
        }
        //println 输出会换行
        //print 输出不会换行
​
​
    }
}

练习3:打印九九乘法表

package com.baidu.struct;
​
public class F4 {
    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(i+"*"+j+"="+(j*i)+"\t");
            }
            System.out.println();
        }
​
​
​
    }
}

增强for循环

主要用于数组或集合的增强型for循环

package com.baidu.struct;
​
public class F5 {
    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){
            System.out.println(x);
        }
    }
}

break语句和continue语句

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

package com.baidu.struct;
​
public class B1 {
    public static void main(String[] args) {
        int i=0;
        while (i<100){
            i++;
            System.out.println(i);
​
            if (i>47){
                break;
            }
​
        }
    }
}
  • continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定

package com.baidu.struct;
​
public class C1 {
    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");
        }
​
    }
}

使用标签

打印质数:

package com.baidu.struct;
​
public class Outer {
    public static void main(String[] args) {
        //打印101-150之间的质数
​
        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+" ");
        }
​
    }
}

流程控制练习:三角形

package com.baidu.test;
​
public class T1 {
    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方法是解决一类问题的步骤的有序集合

    • 方法包含于类或对象中

    • 方法在程序中被创建,在其他地方被引用

  • 设计方法的原则:就是一个方法只完成1个功能,这样有利于我们后期的扩展

package com.baidu.method;
​
public class M1 {
    //main方法
    public static void main(String[] args) {
​
        //实际参数:实际调用传递给他的参数
        int sum = add(1, 2);
        System.out.println(sum);
​
​
    }
​
​
    //加法
    //形式参数:用来定义作用的
    public static int add(int a,int b){
        return a+b;
    }
​
​
​
}

方法的定义和调用

  • 方法包含一个方法和一个方法体

修饰符 返回值类型 方法名(参数类型 参数名){
    ...
     方法体
    ...
     return 返回值;
}
  • 调用方法(比大小)

package com.baidu.method;
​
import javax.xml.transform.Result;
​
public class M2 {
    public static void main(String[] args) {
        int max = max(99, 99);
        System.out.println(max);
    }
        //比较大小
        public static int max(int a,int b){
        int result=0;
​
​
            if (a==b){
                return 0;//终止方法
            }
            if (a>b){
                result=a;
            }else {
                result=b;
            }
            return result;
​
        }
​
}

值传递(Java)和引用传递

  • 值传递(pass by value):在调用函数时,将实际参数复制一份传递到函数中,这样在函数中对参数进行修改,就不会影响到原来的实际参数

  • 引用传递(pass by reference):在调用函数时,将实际参数的地址直接传递到函数中。这样在函数中对参数进行的修改,就会影响到实际参数

原文链接:JAVA:值传递和引用传递_SummerOfFoam的博客-CSDN博客_引用传递和值传递

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值