《从JAVA到Android》JAVA篇之流程控制

来源:互联网 发布:数控车床椭圆编程实例 编辑:程序博客网 时间:2024/05/21 08:35

《从JAVA到Android》JAVA篇之流程控制

  • 条件语句-if elseif else switch
  • 循环语句 for while do..while foreach
  • 跳转语句 break continue return
  • 示例

转载请注明 —— [ 肖义熙 ]

1、条件语句

if从字面意思理解就是如果,else就是那么,很好理解,在程序中也是这样理解的。if(xxx){aaaaaa} else {bbbbbb},如果xxx成立即值为true,执行aaaaaa,否则执行bbbbbb。例如:

int a;boolean is_true = true;if(is_true){    //is_true条件表达式    a = 0;   //执行语句A} else {    a = 1;  //执行语句B}system.out.println("执行程序后a的值为:"+a);//执行后结果为:"执行程序后a的值为:0"。

注:如果执行语句A或执行语句B只有一条语句,则可以省略{},上面的例子可以写成:

int a;boolean is_true = true;if(is_true) //is_true条件表达式    a = 0;   //执行语句Aelse     a = 1;  //执行语句Bsystem.out.println("执行程序后a的值为:"+a);//执行后结果为:"执行程序后a的值为:0"。//注:虽然可以省略,但是为了代码可读性,最好还是不要省略~

上面提到的是简单的条件语句,复杂点的就如下面:

int a;boolean is_true = true;if(is_true){    //is_true条件表达式    a = 0;   //执行语句Aelse if(boolean表达式){    a = 1;  //执行语句B} else if(boolean表达式){    a = 2;}..//有若干个else if,可以无限嵌套.else{    a = 3;}

举个例子来说:
验证一个系统登录信息有效性程序代码:

package com.xyx.blog;import java.util.Scanner;public class TestLogin {    /**     * @param args     */    public static void main(String[] args) {        Scanner scan = new Scanner(System.in); //创建扫描器        System.out.println("请输入用户名:");          String userName = scan.nextLine();  //接收用户输入的用户名        System.out.println("请输入密码:");        String pwd = scan.nextLine();   //接收用户输入的密码        if(!userName.equals("admin")){            System.out.println("对不起,用户名不合法");   //如果用户输入的用户名不是admin,则提示用户:“对不起,用户名不合法”        } else if(!pwd.equals("admin")){            System.out.println("对不起,密码不正确"); //如果用户输入的用户名不是admin,则提示用户:“对不起,密码不正确”        } else {            System.out.println("恭喜您验证通过");  //上面两个都验证通过的情况下。        }    }}

switch多分支语句的用法:

switch (表达式) {  //条件表达式(值必须是整数或字符型)case 常量1:   //常量必须是整数或字符型    代码块;    break;case 常量2:       代码块;    break;default:    break;}

switch多分支语句首先先计算”表达式”,如果表达式的值与case 后面的值相同,则执行case下的代码块。如果相应的代码块中没有break,则会继续执行后面的一个case的代码块,直到有break跳出为止。如:

int a = 0;switch (a) {    //条件表达式(值必须是整数或字符串)case 0: //常量必须是整数或字符串    a = a + 1;    System.out.println("a="+a);case 1:     a = a + 1;    System.out.println("a="+a);    break;default:    break;}//执行代码得到的结果会是:(a=0执行case 0后面的代码块,其代码块没有break,则继续执行case 1后面的代码块)。//a=1;//a=2;

如果表达式值与case的值没有一个是想同的,则会执行default中的代码块

int a = 2;switch (a) {    case 0:     a = a + 1;    System.out.println("a="+a);    breakcase 1:     a = a + 1;    System.out.println("a="+a);    break;default:    System.out.println("没有case匹配,执行defalut");    break;}//执行代码得到的结果会是:没有case匹配,执行defalut

case的常量值不能相同,否则编译不通过。

举例:输入成绩,输出成绩等级:

package com.xyx.blog;import java.util.Scanner;public class StudentPoint {    public static void main(String[] args) {        Scanner scan = new Scanner(System.in);        System.out.println("请输入学生的成绩:");        int point = scan.nextInt();        point = point/10;        switch (point) {        case 10:        case 9:            System.out.print("学生成绩等级:优秀");            break;        case 8:        case 7:            System.out.print("学生成绩等级:良好");            break;        case 6:            System.out.print("学生成绩等级:及格");            break;        case 5:        case 4:        case 3:        case 2:        case 1:        case 0:            System.out.print("学生成绩等级:不及格");            break;        default:            System.out.print("输入错误");            break;        }    }}

2、循环语句

循环字面意义就是重复某个操作,循环语句就是在满足某一个条件的情况下重复执行某一个操作,在JAVA中有三种循环语句(for、while、do.while)。分别对三种循环语句做一一介绍:

for循环语句:

for(表达式1;表达式2;表达式3){    语句执行;}//表达式1:初始化表达式,负责完成变量的初始化//表达式2:循环条件表达式,值为boolean的表达式,只有在表达式成立的条件下执行。//表达式3:循环后操作的表达式,负责修改变量,改变循环条件,再继续执行表达式2

表达式1执行初始化操作后,执行表达式2,如果表达式2值为true,则进入循环体执行循环语句,循环体结束后执行表达式3修改变量,再次进行表达式2的执行,以此重复。
例:计算0-100之间的所有偶数的和。

package com.xyx.blog;public class NumberSum {    public static void main(String[] args) {        int sum = 0;        for(int i=2;i<=100;i+=2){            sum +=i;        }        System.out.println("0-100偶数和为:"+sum);    }}

while循环

while(条件表达式){    执行语句;}

当条件表达式值为true时,执行{}中的代码块,执行完毕后重新判断条件表达式的值,这里需要注意的是代码块中最好要有对条件表达式做修改的操作,否则可能导致死循环。例:从1-100的和:

package com.xyx.blog;public class Sum {    public static void main(String[] args) {        int i = 1;        int sum = 0;        while(i<=100){            sum += i;            i++;    //这里一定要给i做处理,否则会出现死循环        }        System.out.println("1-100的和为:"+sum);    }}

do…while循环语句

其实和while循环语句有点相似,do…while是先执行一次,再进行判断条件是否成立,成立再继续执行。

do{    //执行语句,当程序运行到do...while循环的时候会先执行do代码块}while(条件表达式)

例:说明while和do…while之间的区别:

package com.xyx.blog;public class While {    public static void main(String[] args) {        int i = 0;        while(i == 10){            System.out.println("while循环进入,i的值为:"+i);            i--;        }        int m = 11;        do{            System.out.println("do...while循环进入,m的值为:"+m);            m--;        }while(m == 10);    }}

一种特殊的循环foreach

foreach可以说是for循环的一个简化版,在处理某些数据上极大优化了for循环的效率,如遍历数组等,任何foreach都可以改写成for循环,但是for循环不一定能改写成foreach。

for(元素变量x:遍历对象obj){    引用了x的java语句;}

遍历一个数组再也不用得知数组的长度了,如:

package com.xyx.blog;public class GetArray {    public static void main(String[] args) {        int arr[] = {1,2,3,4,5,6};        System.out.println("数组元素分别为:");        for (int i : arr) {            System.out.println(i);        }    }}

跳转语句

break

break用于循环体中,switch,for,while,do…while等,它用来终止循环,跳出整个循环。
例如:从1加到100,如果值大于1000则跳出循环,不再继续加,并记录加到多少。

package com.xyx.blog;public class Sum {    public static void main(String[] args) {        int i = 1;        int sum = 0;        while(i<=100){            sum += i;            if(sum>1000){                System.out.println("从1到"+i+"的值已经大于1000,和为:"+sum);                break;            }            i++;    //这里一定要给i做处理,否则会出现死循环        }    }}//输出结果为:从1到45的值已经大于1000,和为:1035//从结果来看,1-100相加,但是中途sum>1000之后,循环体就已经不在继续循环,break终止循环了。

continue语句

continue只能用在for、while、do…while循环,其作用是直接跳过循环体后面的语句,进入到下一次循环。
例:从1加到100(去除10的整数倍的数)

package com.xyx.blog;public class Sum {    public static void main(String[] args) {        int i = 1;        int sum = 0;        while(i<=100){            if(i%10 == 0){                i++;                continue;            }            sum += i;            i++;    //这里一定要给i做处理,否则会出现死循环        }        System.out.println("1-100的和为:"+sum);    }}//输出结果:1-100的和为:4500,说明当i=10,20,30,40,50,60,70,80,90,100的时候,直接continue退出并进入下次循环了,没有执行sum +=i;语句

return语句

字面意思就是返回,通常在一个方法的末尾,用于退出当前方法并返回方法数据。

public int test(){    int a = 1;    if(a == 1){        return a;    }    return 0;}//最终返回的结果是 1,当执行return a;时,后面的方法不在执行。

示例

最后送一个经典案例,此案例也可能在面试中遇见。使用for循环输出 杨辉三角:

package com.xyx.blog;public class Yanghui {    public static void main(String[] args) {        int triangle[][] = new int[10][];   //创建一个而为数组,并指定第一维的长度        for(int i = 0;i<triangle.length;i++){   //遍历二维数组的第一层            triangle[i] = new int[i+1];     //初始化第二层数组的大小            for(int j = 0; j < triangle[i].length-1;j++){   //遍历第二层数组                if(i==0 || j == 0 || j == triangle[i].length-1){                    triangle[i][j] = 1; //给四周的值赋值为1                } else {                    triangle[i][j] = triangle[i-1][j]+triangle[i-1][j-1];   //其它通过计算                }                System.out.print(triangle[i][j] +"  "); //输出            }            System.out.println();   //一行输出结束后换行        }    }}

这里写图片描述

写的并不是很好。
循序渐进,时间会给我们答案!come~

0 0
原创粉丝点击