Java入门学习-学习if & else,for循环,foreach循环,while循环的用法。

一、语法结构

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;
    }
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页