Java全栈第一篇-流程控制语句
Posted MurasameLory
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java全栈第一篇-流程控制语句相关的知识,希望对你有一定的参考价值。
第一章 流程控制
1.1、为什么要实现流程控制?意义在哪里?
基本介绍:语句的执行顺序对程序执行的结果是有影响的,只有清楚语句的执行流程,我们才能正确的预估程序的运行结果,所以我们要采用控制语句来实现我们对语句执行顺序的把控。
1.2、顺序结构
基本介绍:顺序结构,也是最简单一种结构形式,即语句从上到下依次执行。
程序实例:
public class Squence { // 创建一个顺序结构的类 public static void main(String[] args) {// 打印输出一段的顺序语句 System.out.println("1"); System.out.println("2"); System.out.println("3"); } }
第二章 三类语句
2.1、判断语句
2.1.1单if语句
基本格式:
if(关系表达式){ 语句体; //如果关系表达式判断为true,则执行语句体。 } //如果关系表达式判断为false,则执行其它语句。
使用情形:
单if语句在单独使用时通常用来判断较为简单的数值问题(注:对于单if语句来说,通俗的讲就是要么判断true执行语句体,要么判断为false不执行语句体,至多执行一个语句,也可以不执行) ,单if语句也可以与其他语句结合使用,穿插进某些语句中,方便语句的判断或暂停(例如在循环语句中结合break或者continue结束循环。)
程序实例:
public class SentenceIf{ public static void main(String[] args) { //创建一个年龄变量,识别是否为未成年人。 int age =19; if(age >=18 ){ System.out.println("已经成年"); } System.out.println("未成年"); } }
2.1.2 if-else语句
基本格式:
if(关系表达式) { 语句体1; //如果关系表达式判断为true,则执行语句体1 }else { 语句体2; //如果关系表达式判断为false,则执行语句体2 }
使用情形:
if-else语句通常针对的是二者选其一的问题,两个语句选一个执行,即必须执行一个语句,与其他语句结合与单if语句类似。
程序实例:
public class SentenceIfElse { public static void main(String[] args) { //判断a是否为三者中的最值 int a = 20; int b = 30; int c = 40; if (a > b && a>c) { System.out.println(a + "为最大值"); }else if(a < b && a<c ) { System.out.println(a + "为最小值"); } } }
2.1.3扩展的if-else语句
基本格式:
if (判断条件1) { 语句1; //判断条件为true,则执行语句1,若为false,则进入下一个判断语句 } else if (判断条件2) { 语句2; //判断条件为true,则执行语句2,若为false,则进入下一个判断语句 } ... }else if (判断条件n) { 语句n; //判断条件为true,则执行语句n,若为false,则进入下一个判断语句 } else { 语句n+1; //上述的判断条件都不成立,则直接执行语句n+1 }
使用情形:
扩展的if-else语句通常针对的是多种条件下的执行情况判断问题,做到n者选其一(例如:数学中的分段函数问题,考察学生成绩的等级问题)。与其他语句结合与单if语句类似。
程序实例:
public class Demo01test { public static void main(String[] args){ //判断考试成绩的等级 int score =100; if (score<0 || score>100){ System.out.println("你的成绩输入错误"); }else if(score>=90 && score<=100){ System.out.println("优秀"); }else if(score>=80 && score<=89){ System.out.println("好"); }else if(score>=70 && score<=79){ System.out.println("良"); }else if(score>=60 && score<=69){ System.out.println("及格"); }else{ System.out.println("不及格"); } } }
2.1.4 if与三元运算符的替换
三元运算符的基本格式回顾:
数据类型 变量名 = 布尔类型表达式?结果1:结果2;
通过if-else的判断形式很容易联想到三元运算符,两者可以替换,扩展if-else语句可以有更多结果。
程序实例:
//取两个数字当中的最大值 public class Demo06Max { public static void main(String[] args) { int a = 120; int b = 30; // 使用三元运算符 int max1 = a > b ? a : b; // 使用if语句 int max2; if (a > b) { max2 = a; } else { max2 = b; } System.out.println("最大值:" + max2); } }
2.2选择语句
2.2.1 switch语句
基本格式:
switch(表达式) { case 常量值1: 语句体1; break; case 常量值2: 语句体2; break; ... default: 语句体n+1; break; //该break是可以省略的,但为了程序的规范性,最好加上 }
使用情形:
switch中所有的case是并列的,小括号内的数值是被检测量,多种情况并列,选择值符合要求的那一个case,执行其下的语句体直到遇到了break或者整体结束为止。
注意事项:
(1)多个case后面的数值不可以重复。
(2)switch后面小括号当中只能是下列数据类型:基本数据类型:byte/short/char/int | 引用数据类型:String(字符串)、enum(枚举) (警惕基本数据类型中没有long)
(3)case前后顺序可以颠倒,而且break语句还可以省略。
(4)如果两个相邻的case,上一个没有break但其值符合条件,switch执行上一个case的语句体后,不会管下一个case(直接穿透他),执行下一个case的语句体。
程序实例:
public class OneWeek { //写一个输入数字可以判断星期几的程序 public static void main(String[] args) { int num = 3; switch (num) { case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; case 3: System.out.println("星期三"); break; case 4: System.out.println("星期四"); break; case 5: System.out.println("星期五"); break; case 6: System.out.println("星期六"); break; case 7: System.out.println("星期日"); break; default: System.out.println("数据不符合规范"); break; } } }
2.3 循环语句
2.3.1 for语句
基本格式:
for(初始化表达式(1); 布尔表达式(2); 步进表达式(4)){ 循环体(3) }
/*解释
(1)负责完成循环变量初始化(初始化一次后,变量的值只会通过步进表达式发生改变)
(2)负责判断是否满足循环条件,不满足则跳出循环
(3)具体执行的语句
(4)循环后,循环条件所涉及变量的变化情况 */
使用情形:
for语句是循环语句中最常使用的语句,因为去将三个表达式结合起来方便书写,不用将初始化语句提出来放在开头定义。还经常采用for循环去遍历数组内的每一个元素。
注意事项:
for循环的变量在小括号当中定义,只有循环内部才可以使用,for循环中如果定义了一个变量,那么这个变量还可以在for循环外再次被利用。
程序实例:
public class Sentencefor { //求100以内所有偶数的和 public static void main(String[] args) { int sum = 0; for (int i = 2; i <= 100; i += 2) { sum = sum + i; System.out.println(sum); } //这里并不一定要采用2开头,用1开头记得再采用if函数区分奇偶 System.out.println(sum); } }
2.3.2while语句
基本格式:
初始化表达式; while(布尔表达式){ 循环体; 步进表达式; }
使用情形:
while语句常用先判断后循环的程序中。
注意事项:
(1)while语句由于初始化表达式处于循环之外,所以while语句之后不能再次给原初始化表达式的变量进行赋值,但可以直接调用。
(2)已知循环次数的时候使用推荐使用for,循环次数未知的时推荐使用while。
程序实例:
public class SentenceWhile { public static void main(String[] args) { int i = 1; // 初始化语句 while (i <= 10) { // 条件判断 System.out.println("妖魔鬼怪快离开" ); // 循环体 i++; // 步进语句 } } }
2.3.3 do-while语句
基本格式:
初始化表达式; do{ 循环体; 步进表达式; }while(布尔表达式);
使用情形:
do-while语句多使用于先执行后判断的程序中。
注意事项:
(1)while语句由于初始化表达式处于循环之外,所以while语句之后不能再次给原初始化表达式的变量进行赋值,但可以直接调用。
(2)do-while无论在什么样的条件下,都至少循环一次,但for循环和while循环可能会执行0次。
程序实例:
public class Demo11DoWhile { public static void main(String[] args) { int i = 1; // 初始化语句 do { System.out.println("妖魔鬼怪快离开" ); // 循环体 i++; //步进语句 } while (i <= 10); // 条件判断 } }
2.4 跳出循环语句
2.4.1 break语句
基本介绍:
break语句的作用是跳出一整个大的循环。
使用场景:
(1)在选择结构switch语句中。
(2)在循环语句中。
程序实例:(见于switch语句中)
2.4.2 continue语句
基本介绍:
结束本次循环,继续下一次的循环。
使用场景:
多见于循环语句中。
程序实例:
public static void main(String[] args) { for (int i = 1; i <= 10; i++) { //不打印第2次javanb if(i == 2){ continue; } System.out.println("javanb"+i);//i用于查看次数 } }
3、扩展知识点
3.1死循环
基本介绍:
也就是循环中的条件永远为true,死循环的是永不结束的循环。例如:while(true){}。 (注:c语言可不能这么干,非人为条件下可能会导致内存占满)
使用情形(人为):
例如:我们需要读取用户输入的输入,但是用户输入多少数据我们并不清楚,也只能使用死循环,当用户不想输入数据了,就可以结束循环了,如何去结束一个死循环呢,就需要使用到跳出语句了。
3.2嵌套循环
基本介绍:
一个循环的循环体是另外一个循环(套娃效应)。
使用场景:
(1)想做出一个矩阵。
(2)想做出某种图案。
(3)........
程序实例:
public class ForPractice2 { public static void main(String[] args) { for(int x=0;x<10;x++){ for(int y=0;y<=x;y++){ System.out.print("*"); } System.out.println(); } //在这里打印出正三角形
//测试结果 * ** *** **** ***** ****** ******* ******** ********* **********
以上是关于Java全栈第一篇-流程控制语句的主要内容,如果未能解决你的问题,请参考以下文章