黑马程序员--- 学习笔记(第三天)

 —————————— ASP.Net+Android+IOS开发.Net培训、期待与您交流!——————————
循环结构
while do-while     for


while语句格式
while(条件表达式){
 循环体;
}


do-while语句格式
do{
   循环体;
}while(条件表达式);
for语句格式
for(初始化表达式;循环条件表达式;循环后的操作表达式){
循环体;
}
例子如下:

/*
循环结构
*/
class Demo2 
{
	public static void main(String[] args) 
	{
		/*
		打印两次你妹
		
		int i=1;
		while (i<3)
		{
			System.out.println("你妹");
			i++;//不要会死循环的
		}
		 */

		/*
		打印两次你妹
		
		int i=1;
		do{
			 System.out.println("你妹");
			 i++;//不要会死循环的
		}while(i<3);
		*/

		/*
		打印三次 二龙xp
		
		for (int j=0;j<3 ;j++ )
		{
			System.out.println("二龙xp");
		}
		*/

		/*
		最简单的无限循环 while for 
		

		while(true){};

		for(;;){};

		*/
		/*

		此代码编译出错	 条件表达式只能为真 假
		
		for (System.out.println("a"); System.out.println("b"); System.out.println("c"))	
		{
			System.out.println("d")	;
		}
		 */
		 /*
		 此代码编译通过  a dcdcdc
		 
		int i=0;
		for (System.out.println("a"); i<3; System.out.println("c"))	
		{
			System.out.print("d")	;
			i++;
		}
		*/
		/*
		效果同上
		*/
		int i=0;
		for (System.out.println("a"); i<3;i++,System.out.println("c"))	
		{	 
			System.out.print("d");
		}

	}
}




while和do-while之间的区别:
1.while:先判断后执行,do while是先执行在判断.
所以do while至少执行一次,而while不会
for和while不同:
1.for里面的变量有作用域范围,只在for循环里面有效
2.for与while可以互换,但是需要循环增量首选for


for节省内存空间,利于内存优化. 



/*
循环测试类
*/
class Demo3 
{
	public static void main(String[] args) 
	{
		/*
		需求:1-10的累加

		累加思想:通过变量纪录每次变化的结果,通过循环进行累加动作
		
		int sum=0;
		for (int i=1;i<=10 ;i++ )
		{
			sum+=i;
		}
		System.out.println(sum);
		*/

		/*
		需求:  1-100之间,7的倍数由多少个?

		计数器思想:
		通过一个变量记住数据的状态变化,通过循环完成.
		*/
		int count=0;
		for (int i=1;i<=100 ;i++ )
		{
			if(i%7==0)
				count++;
		}
		System.out.println(count);
	}
}



什么时候使用循环结构?
当要对某些语句执行多次时,就使用循环结构.


条件表达式只能为真或假,for不写表达式默认为true



循环注意: 一定要明确那些语句需要循环,那些不要.



for嵌套

/*
循环测试类
*/
class Demo4 
{
	public static void main(String[] args) 
	{
		/*
		需求:
		*****
		****
		***
		**
		*

		for (int i=0;i<5 ;i++ )
		{
			for (int j=0;j<5-i ;j++ )
			{
				System.out.print("*");
			}
			System.out.println();
		}
		*/

		/*
		需求:
		*
		**
		***
		****
		*****

		
		for (int i=0;i<5 ;i++ )
		{
			for (int j=0;j<=i ;j++ )
			{
				System.out.print("*");
			}
			System.out.println();
		}
		 */

		 /*
		 需求:
		 1
		 12
		 123
		 1234
		 12345
		 
		 for (int i=1;i<=5 ;i++ )
		 {
			 for (int j=1;j<=i ;j++ )
			 {
				 System.out.print(""+j);
			 }
			 System.out.println();
		 } 
		 */

		 /*
		 需求:九九乘法表
		
		 for (int i=1;i<=9 ;i++ )
		 {
			 for (int j=1;j<=i ;j++ )
			 {
				 System.out.print(i+"*"+j+"="+(i*j)+"\t");
			 }
			 System.out.println();
		 }
		 */
		 /*
		 需求:标号的使用
		
		 o:for (int i=0;i<3 ;i++ )
		 {
			 System.out.println("外层循环");
			 t:for (int j=0;j<3 ;j++ )
			 {
				
				 if(j%2!=0)
					 continue t;

					  System.out.println("内层循环");
			 }
		 }
		  */
		 /*
		 需求:
		      *
		     * *
			* * *
		   * * * *
		  * * * * *
		 */
		 for (int i=0;i<5 ;i++ )
		 {
			 for (int j=0;j<5-i-1 ;j++ )
			 {
				 System.out.print(" ");
			 }
			 for (int k=0;k<=i ;k++ )
			 {
				 System.out.print("* ");
			 }
			 System.out.println();
		 }
	}	  
}




其他流程控制语句:    continue break;
break:应用范围:选择结构和循环结构 作用:中断循环
continue:应用范围: 循环结构 作用:结束本次循环,进入下一次循环


标号: 例如 w: 用于循环结构上,给循环起名字


break,continue后面的不能有语句,因为不会执行到.


函数:
什么是函数?
函数(方法)就是定义在类中具有特定功能一段独立小程序


好处:提高代码复用性
定义语法:
修饰符 返回值类型 函数名(参数列表){
方法体;
}
当函数运算后,没有返回值,可以用到java一个特殊关键字void,可以省略return语句;
但有返回值时,一定要返回值


java最小的功能就是函数


注意:不可以在方法内部定义函数


如何定义一个函数呢?
1.一个函数名体现函数的功能
2.明确函数是否要有参与运算的参数
3.明确函数是否要返回值


返回值为void不能被输出语句输出


函数的重载:
在同一类中,允许有一个以上同名的函数,参数类型和参数个数不同即可.


什么时候用重载?
在定义功能相同时,但参与运算未知内容不同,那么这时就定义一个函数名称以表示
其功能,方便阅读,而通过参数列表不同来区分多个函数.

/*
函数测试类
*/
class Demo5 
{
	public static void main(String[] args) 
	{
		 //System.out.println(getSum(5,5));
		 //print99();
		 System.out.println(getSum());
	}
	/*
	定义一个功能,返回3+4运算的结果
	*/
	public static int getSum(){
		return getSum(3,4);
	}
	/*由用户输入两个数,进行求和运算*/
	public static int getSum(int n,int n1){
	  return n+n1;
	}
	/*判断两个数是否相等*/
	public static boolean isEquals(int n,int n1){
		return n==n1;
	}
	/*定义一个功能打印九九乘法表*/
	public static void print99(){
		for (int i=1;i<=9 ;i++ )
		{
			for (int j=1;j<=i ;j++ )
			{
				System.out.print(i+"*"+j+"="+(i*j)+"\t");
			}
			System.out.println();
		}
	}
}



数组:同一个数组数据的集合,其实就是一个容器


好处:给元素有自动编号
定义格式:
数据类型[] 数组名=new 数据类型[长度];
   
 使用数组
数组名[下标];

/*
数组测试
*/
class Demo6 
{
	public static void main(String[] args) 
	{
		//数组定义: 数据类型 []数组名 = new 数据类型[长度];
		int [] arr=new int[2];//定义了一个数组长度为2的int型数组
		//堆内存实体内的数据都具有默认初始值 int的初始值是0
		arr[0]=15;//给下标为0的元素赋值
		System.out.println(arr[0]);	// 最小下标0
		System.out.println(arr[arr.length-1]);	//	最大下标 arr.length-1
	}
}


java在启动的时候,划分了五个内存空间,进行自己数据的存储
1.方法区
2.本地方法区
3.寄存器
4.栈内存  局部变量,资源会自动释放
5.堆内存  存实体对象,实体对象内基本数据具有默认值


堆内存中当一个实体之间没有引用的时候,jvm会视为垃圾,会启动java
垃圾回收机制不定时处理这些垃圾.


只要是new都会在内存开辟一片新的内存空间



 —————————— ASP.Net+Android+IOS开发.Net培训、期待与您交流!——————————
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值