JAVA 基础 (循环)

JAVA 语言基础组成

②、循环结构:while  ,  dowhile  ,for 。当要对某些语句执行很多次时,就使用循环结构。

while语句格式:[定义初始化表达式]

while(条件表达式)

                            {

                                   【循环体】执行语句;

}

do while 语句格式:do

                               {

                                          执行语句;

}while(条件表达式);

do while特点是条件无论是否满足,循环体至少被执行一次。

for 语句的格式:for(初始化表达式;循环条件表达式;循环后的操作表达式)

                            {

                                   【循环体】执行语句;

}

③、for的初始化表达式,只运行一次,然后会运行循环条件表达式,执行语句,循环后的操作表达式,在这三条语句中循环运行,直至不符合条件,结束for循环。

for与while的区别:变量的作用域不同(初始化变量的位置不同),对于for来讲,如果将用于控制循环的增量定义在for语句中,那么该变量只在for语句内有效,for语句执行完毕,该变量在内存中被释放。for和while可以进行互换,如果需要定义循环增量,用for更合适。

for的初始化表达式和循环后的操作表达式可以省略不写。

无限循环的最简单表达形式:

for( ; ;){ }

while(true){ }

累加与计数器思想:例Day33.java和Day34.java

Day33.java

/*

获取1-10的和,并打印

*/

/*其实这就是累加思想

  原理:通过变量记录住每次变化的结果

       通过循环的形式,进行累加动作

*/

class Day33

{

       publicstatic void main(String[] args)

       {

              intx=1,sum=0;

              while(x<=10)

              {

                     sum=sum+x;

                     x++;

                    

                     System.out.println("sum="+sum);  //明确哪些语句参与运算,哪些不需要

              }

              System.out.println("sum="+sum);

              //用for语句也可以

              intsum1=0;

              for(inty=1;y<=10;y++)

              {

                     sum1+=y;

                     System.out.println("sum1="+sum1);

              }

              System.out.println("sum1="+sum1);

       }

}

Day34.java

/*

把1-100之间,7的倍数的个数,并打印

思路:1、先对1-100进行循环(遍历)通过循环的形式

     2、在遍历过程中,定义条件,只对7的倍数进行操作

     3、因为7的倍数不确定,只有符合条件,就通过一个变量来记录这个变化的次数

 

 

步骤:

1、定义循环语句,选择for语句

2、在循环中定义判断,只要是7的倍数即可,使用if语句,条件: 7的倍数 x%7==0;

3、定义变量,该变量随着7的倍数的出现而自增

*/

/*

 计数器思想:通过一个变量记录住数据的状态变化

            也是通过循环完成

*/

class Day34

{

       publicstatic void main(String[] args)

       {

              intcount=0;

              for(intx=1;x<=100;x++)

              {

                     if(x%7==0)

                            //System.out.println("x="+x);

                     count++;

              }

              System.out.println("count="+count);

       }

}

尖型及乘法表的例子:Day35.java和Day36.java

Day35.java

/*

嵌套语句,就是语句中有语句,也就是大圈套小圈

发现图形有很多行,每一个行有很多列

*/

class Day35

{

       publicstatic void main(String[] args)

       {

              for(intx=0;x<3;x++)

              {

                     for(inty=0;y<5;y++)

                     {

                            System.out.print("*");

                     }

                     System.out.println();  //该语句只有换行的作用

              }

              System.out.println("-------------------");

     

              /*

                     外循环表示的列,内循环表示的行

                     *****

                     *****

                     *****

              */

              intz=0;

              for(intx=0;x<5;x++)

              {

                     for(inty=z;y<5;y++)

                     {

                            System.out.print("*");

                    

                     }

                     System.out.println();

                     z++;

              }

              System.out.println("-------------------");

              //同一个结果,有多种方法

              for(intx=0;x<5;x++)

              {

                     for(inty=x;y<5;y++)

                     {

                            System.out.print("*");

                    

                     }

                     System.out.println();

              }

              System.out.println("-------------------");

              //所得结果:

                       *****

                       ****

                       ***

                       **

                       *

              intw=5;

              for(intx=0;x<5;x++)

              {

                     for(inty=w;y<6;y++)

                     {

                            System.out.print("*");

                    

                     }

                     System.out.println();

                     w--;

              }

              //所得结果:

                        *

                        **

                        ***

                        ****

                        *****

       }

}

Day36.java

/*

 类似这类的规律:*

               **

               ***

               ****

               *****

 尖朝上,可以改变条件,让条件随着外循环变化

 尖朝下,可以改变初始化值,让初始化随着外循环始变化

*/

class Day36

{

       publicstatic void main (String[] args)

       {

              for(intx=1;x<6;x++)

              {

                     for(inty=1;y<=x;y++)

                     {

                            System.out.print("*");

                     }

              System.out.println();

              }

              System.out.println("-------------------");

 

 

/*类似的数字形式

       1

       12

       123

       1234

       12345

*/

              for(intx=1;x<6;x++)

              {

                     for(inty=1;y<=x;y++)

                     {

                            System.out.print(y);

                     }

              System.out.println();

              }

              System.out.println("-------------------");

/*九九乘法表

       1*1=1

       1*2=22*2=4

       1*3=32*3=6 3*3=9

*/

              for(intx=1;x<=9;x++)

              {

                     for(inty=1;y<=x;y++)

                     {

                            System.out.print(y+"*"+x+"="+y*x+"\t");  //\t是制表格符

                     }

                     System.out.println();

              }

       }

}

④、其他流程控制语句

break(跳出),continue(继续)

break语句:应用范围:选择结构和循环结构。

continue语句:应用于循环结构

注意:①、这两个语句离开应用范围,存在是没有意义的

     ②、这两个语句单独存在下面都不可以有语句,因为执行不到

         ③、continue语句是结束本次循环继续下次循环

④标号的出现,可以让两个语句作用于指定的范围

7、函数:

函数就是定义在类中的具有特定功能的一段独立小程序。函数也称为方法。

格式:

修饰符 返回类型函数名(参数类型 形式参数1,参数类型 形式参数2,……)

{

              执行语句;

              return返回值;

}

返回值类型:函数运行后的结果的数据类型。

参数类型:是形式参数的数据类型。

形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。

实际参数:传递给形式参数的具体数值。

return:用于结束函数。

返回值:该值会返回给调用者。

函数的特点:定义函数可以将功能代码进行封装;便于对该功能进行复用;函数只有被调用才会被执行;函数的出现提高了代码的复用性;对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。

注意:函数只能调用函数,不可以在函数内部定义函数;定义函数时,函数的结果应该返回给调用者,交给调用者处理。

如何定义一个函数呢?

答:①、既然函数是一个独立的功能,那么该功能的运算结果是什么先明确。

②、在明确的定义该功能的过程中是否需要未知的内容参与运算,也就是明确函数的参数列表(参数的类型和个数)

函数的重载(overload)

重载的概念:在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。

特点:与返回值类型无关,只看参数列表。重载方便阅读,优化了程序设计。

注意:参数是有顺序的,而且重载和返回值类型没关系。如果参数类型相同,形参名字不同,仍然是相同的参数。

例如:voidshow(int a,char b,double c){}

int show(int a,double c,char b){}   //重载,参数类型不同

double show(int x,char y,double z){}   //没有重载

8、数组

定义:同一种类型数据的集合。数组就是一个容器

优点:可以自动给数据中的元素从0开始编号,方便操作这些元素。

格式1:

元素类型【】 数组名=new 元素类型【元素个数或者数组长度】;

如:int[ ] arr =new int[5];

格式2:

元素类型【】 数组名=new 元素类型【】{元素,元素,……};

int[ ] arr = new int [ ]{3,5,1,7};

int[ ] arr ={3,5,1,7};

内存结构:Java程序在运行时,需要在内存中的分配空间。为了提高运算效率,有对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

栈内存:用于存储局部变量,当数据使用完,所占空间会自动释放。

堆内存:①、数组和对象,通过new建立的实例都存放在堆内存中。

              ②、每个实体都有内存地址值。

              ③、实体中的变量都默认初始化值

              ④、实体不在被使用,会在不确定的时间内被垃圾回收器回收

方法区,本地方法区,寄存器

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值