1、if 用于分支情况:如果。。。就。。。否则就。。。
if(布尔表达式) { //如果布尔表达式为true将执行的语句 } if(布尔表达式){ //如果布尔表达式的值为true }else{ //如果布尔表达式的值为false }2、for 用于循环处理:如从100内的偶数相加:从2开始,到100结束,控制变量每次增加2
for(初始化; 布尔表达式; 更新) { //代码语句 }3、foreach 只读型for循环,用于 遍历
for(声明语句 : 表达式) { //代码句子 }4、while 当条件成立时,一直执行循环体,直到不满足条件 do-while要注意while表达式后面有;
while( 布尔表达式 ) { //循环内容 }先执行一次,再判断条件是否成立
do { //代码语句 }while(布尔表达式);1、if-else 下面为加深理解比较两个string是否相等的栗子
public class temp { public static void main (String[] args){ String string=new String(); string="Hello C!"; String string1="Hello C!"; String string2=new String("Hello C!"); if (string==string1) { System.out.println("两个String用==判断相同");//程序执行了该语句,因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存一份,所以string和string1指向的是同一个对象; } else System.out.println("两个String用==判断不同"); if (string1==string2) { System.out.println("两个String用==判断相同"); } else System.out.println("两个String用==判断不同");//程序执行了这句,因为string1和string2指向的对象是不同的 if (string1.equals(string2)) { System.out.println("两个String用equals判断相同"); } else System.out.println("两个String用equals判断不同"); } } /* 输出: 两个String用==判断相同 两个String用==判断不同 两个String用equals判断相同 */2、for循环 之前做面试题,有一个题是说输出一个蛇形数组,如下: 1 2 3 8 9 4 7 6 5 当时没有做出来,其实静下心来仔细分析,也不难:主要是要注意下标。下面是写的一个小方法
public int[][] SnakeMatrix(int [][] s) { int count=1; int n=s.length; for(int i=0;i<n/2+1;i++){ //上 for(int j=i;j<n-i;j++){ s[i][j]=count; count++; } //右 for(int j=i+1;j<n-i;j++){ s[j][n-i-1]=count; count++; } //下 for(int j=n-i-2;j>=i;j--){ s[n-i-1][j]=count; count++; } //左 for(int j=n-i-2;j>i;j--){ s[j][i]=count; count++; } } return s; }3、foreach
//ArrayList的栗子 public static void main (String[] args){ ArrayList<String> c =new ArrayList<String>(); c.add("张三"); c.add("李四"); c.add("王五"); for(String i:c){ System.out.println(i); } //不过网上说这样效率不高,因为每次i都是创建一个对象,再用get方法得到值。 //String 数组的栗子 public static void main (String[] args){ String [] te = new String[5]; te[0]="test0"; te[2]="test2"; te[4]="test4"; for(String i :te){ System.out.println(i); } } /*输出 test0 null test2 null test4 */ //初始化后,如果没有赋值就输出,会输出null; //试了int的数组,没赋值的位置输出0;4、while 下面是跟着老师视频写的一个开根号的方法
private static double Sqrt(double i) { // TODO Auto-generated method stub double x=1.0; //根 do{ x=(x+i/x)/2; }while(Math.abs(x*x-i)>1e-6); //直到根的平方无线接近于i,就代表x近似于根。 //如果不接近,就循环回去,再类似二分法(取根和i/根的中间) return x; }