黑马程序员_Java基础01_基础语法
2014-03-02 20:59
429 查看
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
导读:if语句、switch语句、循环语句、嵌套for循环、函数、重载
1、if语句(判断结构)
· 三种形式
if( ){}
if( ){}else{} //单条语句
if( ){}else if(){}else{} //单条语句
if else结构的简写格式: 变量 = (条件表达式)?表达式1 :表达式2
· 三目运算符:
好处:可以简化if else代码。
弊端:因为是一个运算符,所以运算完必须要有一个结果。
· 条件表达式无论写成什么样子,只看最终的结构是否是true或者false
2、switch语句(选择结构)
switch(表达式) //表达式的值只接受四种类型:byte、short、int、char
{
case 取值1:执行语句1; break; //case是没有顺序的。也可以把default写在第一个的位置。但还是先执行case
case 取值2:执行语句2; break;
default :执行语句n; break;
//default在最后的话,最后的一个break可以省略。若default不在最后一个后面最好加 //上一个break; 如果不加break;会将语名执行到遇到的下一个break;或者 }结束
}
· 二种结束方式:break; 和 }
· if和switch语句很像,具体什么情况下用哪个语句?
if除了能够判断数值还能判断区间(switch判断区间会很费劲),对于运算结果是boolean型的if能判断(switch不行),if语句的应用范围更广。
如果对具体数值进行判断,且数值不多,符合byte、short、int、char这四种类型(补充枚举类型的也可以),虽然这两个语句都可以使用,但建议用switch完成,因为switch的效率稍高。(用switch的话,所有的case都到了内存中。但用if else,多次判断, 执行的过程会比switch多一点。)
3、循环语句:
三种:
· while( ){}
· do{ }while();
· for(初始化条件;循环体条件;循环后的条件 ){}
while:先判断条件,只有条件满足才执行循环体
do while:先执行循环体一次,再判断条件,条件满足再继续往后面执行。
简单一句话:do while:无论条件是否满足循环体至少执行一次
例:while(y < 3 ); {语句;}要特别注意,编译不会出错,{语句}做为单独的程序体而存在,while一直在执行y<3
变量除了在初始化后才能使用外,还有一个特点,作用域的问题
for(int x = 0; x<3; i++) {} System.out.println("x = "+x); 出错,x只在for的{}中有效,离开{ }后x就消失了(内存释放)
int y = 0; while(y<3) { y++ } System.out.println("y = "+y); 可以输出y
变量如果只是用于控制循环的次数,作为循环增量存在的话,用for比较合适。内存相对优化一些
for和while 可以互换。如果需要定义循环增量。用for更为合适。
总结:什么时候使用循环结构? 当要对某些语句执行很多次时,就使用循环结构。
int x = 1;
for(System.out.println("a"); x<3; System.out.println("c"))
//初始条件是一个执行语句的话就可以做为一个合法表达式存在。
//当多表达式存在时用逗号分隔开。初始化和循环后条件可以不写
{
System.out.println("d");
x++;
}
//结果为:adcdc
· 无限循环的最简单表现形式。
for( ; ; ){ } //对于for来说,条件表达式不写的话,默认为真
while(true){ }
· 循环注意:一定要明确哪些语句需要参与循环,哪些不需要
· 练习题:用for语句实现累加器和计数器
累加思想:(原理:通过变量记录住循环操作后的结果)(通过和循环的形式,进行累加的动作)
(1)一个数不断的变大,或者变小,又不断的记住这个结果(用sum,1~10的和)
(2)字符串的不断延长
计数器思想:(通过一个变量记录住数据的状态变化,也许通过循环完成)(加、减)
4、for的嵌套循环
for(int x = 0; x<3; x++)
{
for(int y = 0; y<4; y++ )
{
System.out.println("*");
}
System.out.println();//只有一个功能就是换行
}
//对于打印长方形:外循环控制的行数。内循环控制的是每一行的列数。也就是一行中元素的个数//根据要打印的要求(行的变化情况),对于内层的嵌套可以通过辅助的变量改动初始变量,又可以改动循环条件,还可以通过外层的x的变化来表现自己的变化。
· 不是规律的规律:
尖朝上,可以改变条件。让条件随着外循环变化。尖朝下,可以改变初始化值,让初始化随着外循环变化。输出九九乘法表的时候,用\t不用空格,可以使格式对齐
· 无限循环,可以在其中加入多条判断语句,用break; 决定什么时候跳出循环。break只跳出当前循环(内层循环)
· 想要跳谁就跳谁,用标号的形式,给for循环起一个名字,就可以了。标号只能用在循环上,给标号起名字的一种方式
w : for(int x = 1; x<=5; x++) {
q : for(int y = 1; y<=5; y++) {
System.out.println("x = "+x);
break w; //在这里跳出的就不仅仅是内层循环了,跳出的还有内层循环
}
}
· continue:只能用于循环结构。继续循环。
特点:结束本次循环继续下一次和循环。continue后面的语句永远执行不到,从for开始再循环。也可以使用标号
· 记住:
(1)break和continue语句的作用范围。离开作用范围是没有任何意义的。
(2)break和continue单独存在的时候,下面可以有任何语句,因为都执行不到
5、函数(概述)
· 定义:函数是定义在类中的具有特定功能的一小段独立程序,函数也称为方法。
return:用于结束函数。 返回值:该值会返回给调用者
一个运算获取不同数据的运算结果,代码出现了重复,为了提高代码的利用性,将代码进行抽取,将这个部分定义成一个独立的功能,方便日后的使用。java中功能的定义是通过函数来体现的
static int(int num) { return num*3+5 } public 可以省了,但是static 必须要写,因为静态的Main必须调用静态的方法
· 函数的特点:
函数可以将功能代码进行封装,提高了功能和代码的复用性;
函数只有被调用才会执行;
对于函数没有具体的返回值的情况,返回值类型用关键字void表示。那么该函数中的return语句在最后一行可以省略不写。写上也不算错(return;)
函数只能调用函数,不能在函数中定义函数。
函数只要放在类中,放上放下都行,没有顺序,但是无论放在哪,都从main开始执行。
6、函数(应用)
· 写程序最主要的就是实现功能,而java中实现功能的最小单位是函数,所以定义功能都把它定义到一个独立的函数中去,不要把代码都放在主函数中去。主函数的作用只有一个调用函数,看看函数的功能是否正确。
· 如何定义一个函数呢?
(1)既然函数是一个独立的功能,那么该功能的运算结果是什么先明确
(2)在明确在定义该功能的过程中是否需要未知的内容参与运算。
其实这两个功能就是在明确函数的定义。
(1)是在明确函数的返回值类型。
(2)明确函数的参数列表( 参数的类型和参数的个数)。(不确定的数都定义变量来存储)
· if(a == b)
return true;
else //else可以省略不写
return false;
返回的不是一个真假值的话,可以这样写:return (a == b) ? true : false;
返回的是一个真假值的话,可以这样简化 return a == b;
· 定义函数的时候只要把相应的功能实现就行了,不要做过多的功能。至于处理的数据是打印还是赋值是主函数的事,不要在功能函数中帮主函数去做。
7、函数的重载
· 定义:在同一个类中,允许存在名称不同的类,只要参数的个数和参数的类型不同即可(注意1:参数是有顺序的 注意2:重载的参数的类型没有关系)
· 重载只和参数列表有关系
· 定义函数名,重点都在于体现函数的功能。功能一致所以定义的函数的名称都一致。这样就在类中出现了重载的形式。
· 什么时候用重载?
当定义的功能相同时,但参与运算的未知内容不同,那么这时就定义一个函数名称,以表示其功能,方便阅读。而通过参数列表的不同,来区分多个同名函数。
void show(int a; double b; double c)
double show (int x; double y; double z) 这个函数不允许和上一个函数在同一个给定的类中
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
导读:if语句、switch语句、循环语句、嵌套for循环、函数、重载
1、if语句(判断结构)
· 三种形式
if( ){}
if( ){}else{} //单条语句
if( ){}else if(){}else{} //单条语句
if else结构的简写格式: 变量 = (条件表达式)?表达式1 :表达式2
· 三目运算符:
好处:可以简化if else代码。
弊端:因为是一个运算符,所以运算完必须要有一个结果。
· 条件表达式无论写成什么样子,只看最终的结构是否是true或者false
2、switch语句(选择结构)
switch(表达式) //表达式的值只接受四种类型:byte、short、int、char
{
case 取值1:执行语句1; break; //case是没有顺序的。也可以把default写在第一个的位置。但还是先执行case
case 取值2:执行语句2; break;
default :执行语句n; break;
//default在最后的话,最后的一个break可以省略。若default不在最后一个后面最好加 //上一个break; 如果不加break;会将语名执行到遇到的下一个break;或者 }结束
}
· 二种结束方式:break; 和 }
· if和switch语句很像,具体什么情况下用哪个语句?
if除了能够判断数值还能判断区间(switch判断区间会很费劲),对于运算结果是boolean型的if能判断(switch不行),if语句的应用范围更广。
如果对具体数值进行判断,且数值不多,符合byte、short、int、char这四种类型(补充枚举类型的也可以),虽然这两个语句都可以使用,但建议用switch完成,因为switch的效率稍高。(用switch的话,所有的case都到了内存中。但用if else,多次判断, 执行的过程会比switch多一点。)
3、循环语句:
三种:
· while( ){}
· do{ }while();
· for(初始化条件;循环体条件;循环后的条件 ){}
while:先判断条件,只有条件满足才执行循环体
do while:先执行循环体一次,再判断条件,条件满足再继续往后面执行。
简单一句话:do while:无论条件是否满足循环体至少执行一次
例:while(y < 3 ); {语句;}要特别注意,编译不会出错,{语句}做为单独的程序体而存在,while一直在执行y<3
变量除了在初始化后才能使用外,还有一个特点,作用域的问题
for(int x = 0; x<3; i++) {} System.out.println("x = "+x); 出错,x只在for的{}中有效,离开{ }后x就消失了(内存释放)
int y = 0; while(y<3) { y++ } System.out.println("y = "+y); 可以输出y
变量如果只是用于控制循环的次数,作为循环增量存在的话,用for比较合适。内存相对优化一些
for和while 可以互换。如果需要定义循环增量。用for更为合适。
总结:什么时候使用循环结构? 当要对某些语句执行很多次时,就使用循环结构。
int x = 1;
for(System.out.println("a"); x<3; System.out.println("c"))
//初始条件是一个执行语句的话就可以做为一个合法表达式存在。
//当多表达式存在时用逗号分隔开。初始化和循环后条件可以不写
{
System.out.println("d");
x++;
}
//结果为:adcdc
· 无限循环的最简单表现形式。
for( ; ; ){ } //对于for来说,条件表达式不写的话,默认为真
while(true){ }
· 循环注意:一定要明确哪些语句需要参与循环,哪些不需要
· 练习题:用for语句实现累加器和计数器
累加思想:(原理:通过变量记录住循环操作后的结果)(通过和循环的形式,进行累加的动作)
(1)一个数不断的变大,或者变小,又不断的记住这个结果(用sum,1~10的和)
(2)字符串的不断延长
计数器思想:(通过一个变量记录住数据的状态变化,也许通过循环完成)(加、减)
4、for的嵌套循环
for(int x = 0; x<3; x++)
{
for(int y = 0; y<4; y++ )
{
System.out.println("*");
}
System.out.println();//只有一个功能就是换行
}
//对于打印长方形:外循环控制的行数。内循环控制的是每一行的列数。也就是一行中元素的个数//根据要打印的要求(行的变化情况),对于内层的嵌套可以通过辅助的变量改动初始变量,又可以改动循环条件,还可以通过外层的x的变化来表现自己的变化。
· 不是规律的规律:
尖朝上,可以改变条件。让条件随着外循环变化。尖朝下,可以改变初始化值,让初始化随着外循环变化。输出九九乘法表的时候,用\t不用空格,可以使格式对齐
· 无限循环,可以在其中加入多条判断语句,用break; 决定什么时候跳出循环。break只跳出当前循环(内层循环)
· 想要跳谁就跳谁,用标号的形式,给for循环起一个名字,就可以了。标号只能用在循环上,给标号起名字的一种方式
w : for(int x = 1; x<=5; x++) {
q : for(int y = 1; y<=5; y++) {
System.out.println("x = "+x);
break w; //在这里跳出的就不仅仅是内层循环了,跳出的还有内层循环
}
}
· continue:只能用于循环结构。继续循环。
特点:结束本次循环继续下一次和循环。continue后面的语句永远执行不到,从for开始再循环。也可以使用标号
· 记住:
(1)break和continue语句的作用范围。离开作用范围是没有任何意义的。
(2)break和continue单独存在的时候,下面可以有任何语句,因为都执行不到
5、函数(概述)
· 定义:函数是定义在类中的具有特定功能的一小段独立程序,函数也称为方法。
return:用于结束函数。 返回值:该值会返回给调用者
一个运算获取不同数据的运算结果,代码出现了重复,为了提高代码的利用性,将代码进行抽取,将这个部分定义成一个独立的功能,方便日后的使用。java中功能的定义是通过函数来体现的
static int(int num) { return num*3+5 } public 可以省了,但是static 必须要写,因为静态的Main必须调用静态的方法
· 函数的特点:
函数可以将功能代码进行封装,提高了功能和代码的复用性;
函数只有被调用才会执行;
对于函数没有具体的返回值的情况,返回值类型用关键字void表示。那么该函数中的return语句在最后一行可以省略不写。写上也不算错(return;)
函数只能调用函数,不能在函数中定义函数。
函数只要放在类中,放上放下都行,没有顺序,但是无论放在哪,都从main开始执行。
6、函数(应用)
· 写程序最主要的就是实现功能,而java中实现功能的最小单位是函数,所以定义功能都把它定义到一个独立的函数中去,不要把代码都放在主函数中去。主函数的作用只有一个调用函数,看看函数的功能是否正确。
· 如何定义一个函数呢?
(1)既然函数是一个独立的功能,那么该功能的运算结果是什么先明确
(2)在明确在定义该功能的过程中是否需要未知的内容参与运算。
其实这两个功能就是在明确函数的定义。
(1)是在明确函数的返回值类型。
(2)明确函数的参数列表( 参数的类型和参数的个数)。(不确定的数都定义变量来存储)
· if(a == b)
return true;
else //else可以省略不写
return false;
返回的不是一个真假值的话,可以这样写:return (a == b) ? true : false;
返回的是一个真假值的话,可以这样简化 return a == b;
· 定义函数的时候只要把相应的功能实现就行了,不要做过多的功能。至于处理的数据是打印还是赋值是主函数的事,不要在功能函数中帮主函数去做。
7、函数的重载
· 定义:在同一个类中,允许存在名称不同的类,只要参数的个数和参数的类型不同即可(注意1:参数是有顺序的 注意2:重载的参数的类型没有关系)
· 重载只和参数列表有关系
· 定义函数名,重点都在于体现函数的功能。功能一致所以定义的函数的名称都一致。这样就在类中出现了重载的形式。
· 什么时候用重载?
当定义的功能相同时,但参与运算的未知内容不同,那么这时就定义一个函数名称,以表示其功能,方便阅读。而通过参数列表的不同,来区分多个同名函数。
void show(int a; double b; double c)
double show (int x; double y; double z) 这个函数不允许和上一个函数在同一个给定的类中
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
相关文章推荐
- 黑马程序员-Java学习01-基础语法
- 黑马程序员---java基础---02java基础语法(01)
- 黑马程序员—java语法基础
- 黑马程序员--Java基础语法之面向对象
- 黑马程序员--java基础--基础语法
- 黑马程序员——Java基础语法三
- 黑马程序员:Java编程_语法基础
- 黑马程序员 Java基础01__从HelloWorld到面向对象
- 黑马程序员-Java语法基础(补充)
- 黑马程序员-----JAVA基础语法(一)
- 黑马程序员——java基础语法总结
- 黑马程序员--java基础语法
- 黑马程序员_Java基础_前期准备01_3.4
- 黑马程序员---JAVA基础---语法基础(二)
- 黑马程序员——Java基础语法
- 黑马程序员-Java基础总结03——Java基本语法(二)
- 黑马程序员-day02-Java基础语法
- 黑马程序员-------java语法基础
- 黑马程序员_Java语法基础2
- java-01-基础语法