java的流程控制结构有三种:顺序、选择、循环 java
Java的基本结构就是顺序结构,除非特别指明,不然就是按照顺序一句一句执行。
顺序结构是最简单的算法结构。
语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。算法
咱们不少时候须要去判断一个东西是否可行,而后咱们才去执行,这样一个过程在程序中用选择语句来表达。数组
在java中,选择结构分为 if-else 语句和 switch 语句。ide
首先咱们来看下if-else语句:3d
if单选择结构:
语法:code
if(布尔类型表达式){ 语句或语句块 }
if语句(单支)的执行流程: 首先判断布尔类型表达式看它的结果是false仍是true 若是是true执行{}里面的方法体内容 若是是flase就不执行{}里面的方法体内容,程序日后加载
例如:blog
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入内容:"); String s = scanner.nextLine(); if (s.equals("Hello")) System.out.println(s); scanner.close(); }
在这里的s.equals的意思是判断s所表示的字符串是否和后面的Hello相同,当判断字符串时尽可能别用 == 。
if双选择结构:
语法:内存
if(布尔类型表达式){ 语句或语句块 }else{ 语句或语句块 }
例如:作用域
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入:"); int score = scanner.nextInt(); if(score>=60){ System.out.println("及格"); }else{ System.out.println("不及格"); } scanner.close(); }
if多选择结构:字符串
不少选择不只仅只有两个,因此要用多选择结构处理。 语法: if(布尔表达式1){ //若是布尔表达式1为true将执行的语句 }else if(布尔表达式2){ //若是布尔表达式2为true将执行的语句 }else if(布尔表达式3){ //若是布尔表达式3为true将执行的语句 }else{ //若是以上布尔表达式都不为true将执行的语句 }
备注:
1.在多支语句中,这多种情形是一种互斥关系,非你即我,只有一种情形会成立,程序也只会执行条件里面的一种代码。
2.在多支语句中,若是最后一种情形它包含了它以上情形以外的全部情形,那么该种情形也能够这样表达,省略if(条件)。
例如:
int per = 76; if(per == 100){ System.out.println("进1v1名师辅导班"); }else if(per >= 90 && per < 100){ System.out.println("进状元班"); }else if (per >= 80 && per < 90){ System.out.println("进尖子班"); }else if (per >= 70 && per < 80){ System.out.println("进珍珠班"); }else if (per >= 60 && per < 70){ System.out.println("进普通班"); }else if(per < 60){ System.out.println("不录取"); }
if嵌套结构:
在一个if里再加一个if。
语法:
if(布尔类型表达式1){ //若是布尔表达式1为true将执行的语句 if(布尔类型表达式2){ //若是布尔表达式2为true将执行的语句 语句或语句块 }else{ //若是布尔表达式2为false将执行的语句 语句或语句块 } }else{ //若是布尔表达式1为false将执行的语句 if(布尔类型表达式2){ //若是布尔表达式2为true将执行的语句 语句或语句块 }else{ //若是布尔表达式2为false将执行的语句 语句或语句块 } }
例如:
String sex = "男"; double money = 18000; if (sex.equals("男")) { if (money >= 20000) { System.out.println("女生眼中的高富帅"); } else if(money < 8000){ System.out.println("女生眼中的屌丝"); } }else if (sex.equals("女")){ if (money >= 12000){ System.out.println("男生眼中的白富美"); }else if (money <= 3000){ System.out.println("男生眼中的女屌丝"); } }
switch多选择结构:
switch case语句判断一个变量与一系列值中某个值是否相等,每一个值称为一个分支。
switch语句重点变量类型能够是:
byte、short、int、String或者char
case标签必须为字符串常量或字面量
语法:
int N = 2; switch (N){ case 2: System.out.println("2"); break; case 's': System.out.println("s"); break; default: System.out.println("wrong"); }
注意:
1)switch中表达式的返回值只能是 int,byte,char,short,枚举,JDK1.7以后能够接收字符串类型;
2)case子句中的值必须是常量,且不能重复;
3)default无关紧要
4)break做为某一个case代码段的结束句,使其跳出程序。
5)case 情形之间也是一种互斥关系,非你即我。
case穿透性
在switch语句,若是case后面的break省略掉,将会出现穿透现象。不会判断后面的case情形值,直接加载后面的case方法体内容
例如:
public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("今天星期几了?"); int week = scan.nextInt(); switch(week){ case 1: System.out.println("Monday"); break; case 2: System.out.println("Tuesday"); break; case 3: System.out.println("Wednesday"); break; case 4: System.out.println("Thursday"); break; case 5: System.out.println("Friday"); break; case 6: System.out.println("Saturday"); break; case 7: System.out.println("Sunday"); break; default: System.out.println("Sorry,i don't know!"); } }
顺序结构的程序语句只能 被执行一次。若是你要一样的操做执行屡次,就须要使用循环结构。
循环结构组成部分通常分为4个部分:
1.初始化语句:在循环最初开始时,须要定义一个初始化的变量,并且只会定义一次。
2.条件判断(结束条件):若是条件知足,进入循环,若是条件不知足,则退出循环
3.循环体内容:重复要作的事情内容,可能包含不少条语句(事情是有规律的)
4.迭代语句(步进语句):每次循环结束以后须要执行步进语句(迭代语句),对初始化变量作步进(迭代)
初始化语句必定和条件判断表达式紧密结合 迭代语句和条件判断表达式也是紧密结合 迭代语句是对初始语句中定义的初始化
java中有三种主要的循环结构:while循环 do-while循环 for循环
1.while循环
while循环不知道循环次数。先判断,再循环。经常使用死循环。
while是最基本的循环,它的语法为:
while(循环条件) { 循环语句 } 只要循环条件的结果为真,就执行循环语句
注意:必定要有退出循环的条件,不然会造成无限循环
例如:
public class Test { public static void main(String args[]) { int x = 10; while (x < 20) { System.out.print("value of x :" + x); x++; System.out.print("\n"); } } }
注意:必定要有退出循环的条件,不然会造成无限循环
例如:
public class Test { public static void main(String args[]) { int x = 10; while (x < 20) { System.out.print("value of x :" + x); x++; System.out.print("\n"); } } } public class Test { public static void main(String args[]) { int x = 10; while (x < 20) { System.out.print("value of x :" + x); x++; System.out.print("\n"); } } }
以上实例编译运行结构以下:
value of x : 10 value of x : 11 ... value of x : 19
2.do…while循环
对于while语句而言,若是不知足条件,则不能进入循环。但有时候咱们须要即便不知足条件,也至少 执行一次。
do…while循环和while循环相同,不一样的是,
do…while循环至少会执行一次。
do…while循环的语法为:
do { 执行语句 } while(循环条件);
注意:布尔表达式在循环体的后面,因此语句块在检测布尔表达式以前已经执行了。若是布尔表达式值为true,则语句块一直执行,直到布尔表达式的值为false。
例如:
public class Test { public static void main(Staing args[]) { int x = 10; do { System.out.print("value of x :" + x); x++; System.out.print("\n"); } while (x < 20); } }
以上实例编译运行结果以下:
value of x : 10 ... value of x :19
3.for循环
虽然全部循环结构均可以用while或者do…while表示,但java提供了另外一种语句(for循环),使一些循环结构变得更简单。
for循环的流程:
for循环的语法为:
for(初始化语句;判断条件语句;控制条件语句){ 循环体语句; }
注释:(1)初始化语句:一条或者多条语句,这些语句完成一些初始化操做
(2)判断条件语句:这是一个boolean 表达式,这个表达式能决定是否执行循环体
(3)循环体语句:这个部分是循环体语句,也就是咱们要屡次作的事情
(4)控制条件语句:这个部分在一次循环体结束后,下一次循环判断条件执行前执行。经过用于控制循 环条件中的变量,使得循环在合适的时候结束
例如:
public class Test{ public static void main (Staing args[ ]){ for(int x=10;x<20;x=x+1){ System.out.print("value of x :"+x); System.out.print("\n"); } } }
编译运行结果以下:
value of x :10 ... value of x :19
for和while的区别:
1.控制语句中所涉及到的循环变量,当for循环结束后,定义的循环变量不能再被访问,而while循环结束后依然能够被访问到。若是不继续使用循环变量,建议使用for循环,由于for循环结束后,循环变量就会从内存中消失,从而可以提升内存的使用效率
2.在已知循环次数的状况下,建议使用for循环,当循环次数不肯定时使用while循环。
4.加强for循环
加强for循环的语法
for(声明语句:表达式){ //代码句子 }
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其做用域限定在循环语句块,其值与此时数组元素的值相等。
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
例如:
public class test { public static void main(String args[]) { int[] numbers = { 10, 20, 30, 40, 50 }; for (int x : numbers) { System.out.print(x); System.out.print(","); } System.out.print("\n"); String[] names = { "James", "Larry", "Tom", "Lacy" }; for (String name : names) { System.out.print(name); System.out.print(","); } } }
编译运行以下:
10,20,30,40,50, James,Larry,Tom,Lacy,
break关键字:
break主要用在循环语句或者switch语句中,用来跳出整个语句块。 break跳出最里面的循环,而且继续执行该循环下面的语句。
break实例:
public class Test { public static void main(String args[]) { int [] numbers = {10, 20, 30, 40, 50}; for(int x : numbers ) { // x 等于 30 时跳出循环 if( x == 30 ) { break; } System.out.print( x ); System.out.print("\n"); } } }
以上实例编译运行结果以下:
10 20
continue 关键字:
continue 适用于任何循环控制结构中。做用是让程序马上跳到下一次循环的迭代。 在for循环中,continue语句使程序当即跳转到更新语句。 在while或者do...while循环中,程序当即跳转到布尔表达式的判断语句。
continue 实例:
10 20 40 50
return 关键字:
直接结束当前main方法,遇到return后,方法中的全部代码将再也不执行。 注意:程序中要减小return的使用频率。一旦使用return,整个main方法结束
1.死循环概念:循环中条件永远都是true,死循环是永不结束的循环。死循环通常须要和跳出语句结合。2.循环嵌套 概念:是指一个循环的循环体是另外一个循环。好比说for循环中内置了一个for循环,就是循环嵌套。循环次数=外部循环的次数*内部循环的次数