《从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; //执行语句A}else 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); break;case 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~
- 《从JAVA到Android》JAVA篇之流程控制
- Java从入门到精通 - 流程控制
- 《从JAVA到Android》JAVA篇之认识JAVA
- java之流程控制
- Java程序员从笨鸟到菜鸟之(一)流程控制
- android 从java到C层文件读取流程
- java基础之控制流程
- java之控制执行流程
- Java基础之流程控制
- java之流程控制语句
- java基础之流程控制
- java 笔记之流程控制
- Java基础之流程控制
- Java基础之流程控制
- java基础之流程控制
- 从完成《JAVA编程思想》第四版 流程控制 练习10的过程中学到的
- 第二篇、java入门之流程控制语句
- JAVA基础之流程控制 运算符
- Android Service浅析(下)
- DeepID人脸识别算法之三代
- Joysticks
- Web测试关注点的攻与防--SQL注入
- Cannot truncate non-managed table t306
- 《从JAVA到Android》JAVA篇之流程控制
- 注册窗口监听器
- ES6学习9(Iterator&for...of)
- 小白的开始
- 以反射Gray码的顺序生成0,1的n元组的算法-组合数学
- 通过Jquery的Ajax方法读取将table转换为Json
- centos 安装jenkins
- 习惯的力量
- SQL优化思路