循环结构及数组

本文深入讲解了循环结构(包括while循环、do...while循环和for循环)的应用,并通过实例演示了如何利用这些循环来解决实际问题。此外,还介绍了数组的基本概念及其在Java中的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

循环结构

  • while循环/do..while循环

    • while循环
      while循环主体只有一个语句时,可以省略大括号。在while循环语句中只有一个判断条件,它可以是任何表达式。当判断条件的值为真,循环就会执行下一次,再重复测试判断条件,执行循环主体,直到判断条件的值为假,才会跳离while循环。
public class WhileDemo{
    public static void main(String[] args){
        int x = 1;
        int sum = 0;
        while(x<=10){
            sum += x;
            x++;
        }
        System.out.println("1->10累计的结果为"+sum);
    }
}
 - do..while循环

do..while循环也是用于未知循环执行次数的情况,而while循环及do..while循环最大的不同就是进入while循环钱,while语句会先判断条件的真假,再决定是否执行循环主体,而do..while循环是每次都是先执行一次循环主体,然后再测试判断条件的真假,所以,do..while循环至少都会执行一次循环主体。

public class DoWhileDemo{
    public static void main(String[] args){
        int x = 1;
        int sum = 0;
        do{             //do..while至少先执行一次
            sum += x;
            x++;
        }while(x <= 10);
        System.out.println("1->10累计的结果为"+sum);
    }
}
  • for循环
    如果开发者已经明确的知道了循环次数,那么就可以使用for循环。
    标准的for循环格式:for ( ; ; ){};
/*
用 "*"实现输出正金字塔
*/
class Demo2 
{
    public static void main(String[] args) 
    {
        for (int i=1;i<=7 ;i++ )
        {
            for (int j=1;j<=i ;j++ )
            {
                    System.out.print("*");
            }
            System.out.println();
        }
    }
}

实现反的金字塔

class Demo3 
{
    //反金字塔
    public static void main(String[] args) 
    {
        int n=6;
        for (int i=0;i<n ;i++ )
        {
            for (int k=1;k<=i ;k++ )
            {
                System.out.print(" ");
            }
            for (int j=1;j<=2*(n-i)-1 ;j++)
            {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

循环的嵌套实现乘法口诀表

//乘法口诀表
class Demo8 
{
    public static void main(String[] args) 
    {
        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();
        }

    }
}
  • break
    用多分支判断月份的天数
//多分支判断月份的天数
class Demo7 
{
    public static void main(String[] args) 
    {
        int m=3,year=2012;
         if(((year % 100 == 0) && (year % 400 == 0)) || ((year % 100 != 0) && (year % 4 == 0)))
                            System.out.println("2月有29天");
        else{
        switch(m){
            case 2:  System.out.println("2月有28天");break;
            case 1 : System.out.println("1月有31天");break;
            case 3 :  System.out.println("3月有31天");break;
            case 4 :  System.out.println("4月有30天");break;
            case 5 :  System.out.println("5月有31天");break;
            case 6 :  System.out.println("6月有30天");break;
            case 7 :  System.out.println("7月有31天");break;
            case 8 :  System.out.println("8月有31天");break;
            case 9 :  System.out.println("9月有30天");break;
            case 10:  System.out.println("10月有31天");break;
            case 11 :  System.out.println("11月有30天");break;
            case 12 :  System.out.println("12月有31天");break;
            default: System.out.println("输入有误");
        }
        }
    }
}

break语句可以强迫程序终端循环,当程序执行到break语句时,即会离开循环,继续执行循环外的下一个语句,如果break语句出现在嵌套中的内部循环,则break语句只会跳出当前层的循环。上面的这个程序如果缺乏break语句,则会继续往下运行,直到遇到break语句或者直到程序最后才会结束。

  • continue
public class Demo4
{
    public static  void  main(String[] args){

            for (int i=0; i<=3; i++)
            {
                  if(i==2){
                    continue;
                  }

                 System.out.println(i);

            }
    }
}

输出结果是0,1,3
从程序的运行结果中可以发现,当i的值为2时,程序没有向下执行语句,而是退出到了循环判断出继续向下执行,所以continue只是中断了一次循环操作。

数组

数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按使用可以分为一维数组、二维数组和多维数组。

  • 一维数组的声明和分配内存
    数据类型 数组名[] =null; //声明一维数组
    数组名 = new 数据类型[长度]; //分配内存给数组
    也可以用下面这种方式
    数据类型[] 数组名 =null; //声明一维数组
    平常使用可以使用这种简便的方式
    数据类型 数组名[] = new 数据类型[个数]
  • 数组的静态初始化
    数据类型 数组名[] = {初值0,初值1,..初值n};

使用for遍历数组

public class Demo1
{
    public static void main(String[] args){
    int a[] = {1,2,3,4,5,6,7};
    for (int i=0;i<a.length;i++){
        System.out.println(a[i]);
    }

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值