本周的内容主要有程序流程控制、数组和方法。
一、程序流程控制包括三种基本技术:调用方法,选择,循环。
调用方法,调用方法可以离开当前方法,转移到被调用的方法。 ex:println()也是一种方法,调用时转到println(),当println()执行完成时,又会回到main()主方法中。
布尔表达式中的&& || !和 & | ,&&(||)和&(|)的区别在于:前者为短路,后者两个都要判断,具体的就是&&当第一个为假,则判定为假,不进行后面的判定。&依然会判定第二个条件。
而||是当第一个为真,则判断为真,不进行后面的判定。|依然会判定第二个条件。这一特点在涉及到如i++(i-- ++i --i)的时候,用短路还是不短路,会有细微的不同。(补充:i/j被看成是一个整体,不用单独给括号包起来。)
if语句:if(布尔表达式){ 布尔表达式为真,则执行大括号里的语句,为假则进行下一步骤}
if-else语句:if(布尔表达式1){布尔表达式1为真,则执行大括号里的语句,为假则进行下一步骤}else if(布尔表达式2){布尔表达式1为假的前提下,且布尔表达式2为真的前提下,则执行大括号里的语句,否认进行下一步骤}else if(布尔表达式3){布尔表达式1、2为假的前提下,且布尔表达式3为真的前提下,则执行大括号里的语句,否认进行下一步骤}else{以此类推}
switch语句的形式是:switch(变量a){
case 某值:语句1;(break;)
case某值:语句2;(break;)
case某值:语句3;(break;)
…………
Default某值:语句n;(如果能执行到default语句 也不用写break;会自动终止)
……
注意点:1,如果语句后有break,那么执行完语句后,就会直接跳出整个switch语句。
没有break,则会从某值一直向下执行。 Default是默认情况,也就是各种case都不满足,就会执行的情况。
2,switch中的某值 只能是小于或等于32位的整数值,也就是说只能是byte,short,int,char类型。(jdk7.0后,可以是string类型)
}
for循环 for(int i=1;i<=10;i++){ } 即for(初始化;布尔表达式;更新){ }
也即for(初始条件;限制条件;变化规律){ }
for循环很难理解的就是嵌套循环。如果用debug看就会比较清晰,同时尽量在逻辑上把两层循环的意义想通,
搞懂外层循环是代表的什么意义,内层循环又是代表的什么意义,便于书写代码。
在for循环中加入循环计数器i,可以记录循环的次数,值得注意的是,这个i需要定义在主方法里。这里涉及到一个数据的生命周期,目前,我觉得数据的生命周期,或者说作用范围是数据所在最外的大括号内。
do{}while()和while(){}循环do{}while()先执行一次后判断是否继续while(){}先判断后执行
break和continue语句 跳出从break开始离break最近,向外的第一个循环。
Continue亦是
二、数组部分则相对比较好理解,在这里就简单写一下,数组的形式:
声明:数组类型 [ ] 数组名字=new 数组类型[ 数组长度] ;
eg:int [] a=new int [ ];
数组下标范围是从0到a.length-1
注意:1.一个数组内的成员,必须是同一种类型的数据。如int数组里面的成员就只能是int类型。如果有类的加入,则每一个成员都是某类声明的某个对象,这个对象可以带有不同属性不同类型的数据。
2.在方法调用中可以发现,==比较的是内存地址,String a=“王”;String b=“王二”;
但a==b是false。因为包括八种基本类型(八种基本数据类型存在于栈内存)即使赋给相同值,内存地址也不一样。包括引用类型的String,他们的内存地址也不一样。但数组例外,把一个数组赋值给另一个数组,那么两个数组会共用一个内存地址,在堆空间中是使用同一个空间的,所以能够相等。至于类的情况,暂时没学到,不讨论。
最后,a.equals b,比较的才是a b的取值,而不是内存空间。
三、方法
方法的模式:
public class test1{
public static void main(String[] args){
方法一setmoney(){};
方法二getmoney(){};
方法三set(){};
方法四money(){};
}
public static void setmoney(){};无参无返回
public static void getmoney(String name,int number){};有参无返回
public static String getmoney(){
return x;};无参有返回
public static String getmoney(String name,int number){
return x;
};有参有返回
//有返回值与否决定是否void,小括号里有参数与否决定有无参。
//只要是有返回类型,就要输入返回的值的类型,且必须有return,否则报错)
}
调用方法时可能会用到全局变量,这个值要定义在public class之后 main方法之前,冠以“ private static ”eg:private static double money;
方法的调用可以让主方法看上去更加简洁,逻辑更加清晰,同时由于把实现功能的方法外置,可以随时多次调用,减少了代码数量。所以这是要习惯的使用方式。
原文:http://www.cnblogs.com/zoujuns/p/5293826.html