流程控制语句
一.顺序控制二.分支(条件)控制语句
1.单分支(if)2.双分支(if ... else ...)3.多分支(if ... else ... if ... else ...)4.嵌套分支5.switch分支结构 三.循环
1.while循环语句2.do...while循环语句3.for循环语句4.循环嵌套5.跳转语句
流程控制语句在程序中,程序运行的流程控制决定程序是如何执行的,主要有三大流程控制语句.
- 顺序控制分支(条件)控制循环控制
+++
一.顺序控制顺序控制就是程序会自上而下,自左及右依次逐行执行.就和普通写文章,读文章的顺序一样.
比如:java中变量一定是先定义再使用
int num1 = num2 + 1; int num2 = 23; //以上就是错的,应该像下面的这样写 int num2 = 23; int num1 = num2 + 1;
+++
二.分支(条件)控制语句在实际生活中,经常需要做出一些判断,例如开车来到一个十字路口,需要进行判断,红灯停绿灯行.
分支控制语句能让程序有选择的执行响应的代码,分支控制有三种形式:
单分支:if双分支:if … else …多分支:if … else if … else … 1.单分支(if)
if语句就是如果满足某种条件,就进行某种处理.
if(条件判断){ 执行语句; } if(age > 18){ System.out.println("此人是成年人") }2.双分支(if … else …)
双分支语句就是如果满足某种条件,就进行某种处理,否则就执行另一种处理.
例如:要判断一个正整数的奇偶性,如果该数能被2整除则为偶数,否则则为奇数
if(条件判断){ 执行语句1; }else{ 执行语句2; } if(num % 2 == 0){ System.out.println(num+"为一个偶数"); }else{ System.out.println(num+"为一个奇数"); }3.多分支(if … else … if … else …)
多分支语句用于对多个条件进行分支判断,从而进行多种不同的处理.
例如:对一个学生的考试成绩进行等级划分,如果分数大于80则为优秀,如果分数大于70则为良好,如果分数大于60则为及格,如果分数小于60则为不及格
if(判断条件1){ 执行语句1; }else if(判断语句2){ 执行语句2; }else if(判断语句3){ 执行语句3 }else{ 执行语句4; } if(grade >= 80){ System.out.println("成绩为优秀"); }else if(grade >=70 && grade <80){ System.out.println("成绩为良好"); }else if(grade >=60 && grade < 70){ System.out.println("成绩为及格"); }else{ System.out.println("成绩为不及格"); }4.嵌套分支
在一个分支结构中又完整的嵌套了另一个完整的分支结构, 里面的分支的 结构称为内层分支,外面的分支结构称为外层分支。 嵌套分支会影响代码的可读性,建议最好不要超过 3 层,你套十层神仙也 看不懂了。 动物园的门票分淡季旺季,淡季20元,旺季30元,其中(1代表淡季, 2代表旺季)
儿童(0~7)免费学生(8~22)岁半价成人(23~60)不打折老人(>60岁)打三折
package com.hkd.test; import java.util.Scanner; public class TestIf { public static void main(String[] args) { System.out.println("请输入季节(1,代表淡季,2,代表旺季):"); Scanner scanner = new Scanner(System.in); int season = scanner.nextInt(); double ticketPrice1 = 20; double ticketPrice2 = 30; if (season == 1){ System.out.println("请输入年龄:"); int age = scanner.nextInt(); if(age > 0 && age <8){ System.out.println("您的票价是:免费"); } else if (age >= 8 && age <=22){ System.out.println("您的票价是:" + (ticketPrice1 * 0.5)); } else if (age >= 23 && age <=60){ System.out.println("您的票价是:" + ticketPrice1); } else if(age >60 && age <=120){ System.out.println("您的票价是:" + (ticketPrice1 * 0.3)); } else { System.out.println("您输入的年龄不合法"); } } else if(season == 2){ System.out.println("请输入年龄:"); int age = scanner.nextInt(); if(age > 0 && age <8){ System.out.println("您的票价是:免费"); } else if (age >= 8 && age <=22){ System.out.println("您的票价是:" + (ticketPrice2 * 0.5)); } else if (age >= 23 && age <=60){ System.out.println("您的票价是:" + ticketPrice2); } else if(age >60 && age <=120){ System.out.println("您的票价是:" + (ticketPrice2 * 0.3)); } else { System.out.println("您输入的年龄不合法"); } } } }5.switch分支结构
switch语句是一种很常用的选择结构语句,它由一个switch控制表达式和多个case关键字组成.与if条件语句不同的是,switch条件语句的控制表达式结果类型只能是byte/short/char/int/enum枚举以及String类型,而不能是boolean类型.
switch语句的基本语法格式如下
switch(控制表达式){ case 目标值1: 执行语句1; break; case 目标值2: 执行语句2; break; case 目标值3: 执行语句3; break; . . . default: 执行语句n; break; }
在上面的语法格式中,switch语句将控制表达式的值与每个case中的目标值进行匹配,如果找到匹配的值,就会执行对应case后的语句,并通过break语句跳出该switch语句;如果搜索完所有的case仍没找到匹配的值,就会执行default后的语句.
例如:根据月份判断为什么季节
switch(month){ case 12: case 1; case 2: System.out.println("当前为冬季"); break; case 3: case 4: case 5: System.out.println("当前为春季"); break; case 6: case 7: case 8: System.out.println("当前为夏季"); break; case 9: case 10: case 11: System.out.println("当前为秋季"); break; default: System.out.println("输入的月份不正确!"); break; }
注意:
在使用switch语句时,需要注意两点
- switch条件语句后{}中的多个case以及default标签顺序可以随机,并不影响程序的执行结果;在case和default标签中的执行句后务必加入break关键字,用于执行完语句后跳出当前switch条件语句,否则,程序会接着执行后续的执行语句,直到遇到break语句或者switch语句末尾
+++
三.循环 1.while循环语句while语句和之前讲的选择结构语句有些相似,都是根据条件判断来决定是否执行大括号{}中的语句.区别在于:while语句会反复判断循环条件是否成立,只要条件成立{}中的执行语句就会执行,知道循环条件不成立才会停止
while(循环条件){ 执行语句 . . . }
例如:打印小于5的数字
while(x < 5){ System.out.println("x = "+x); x++; }2.do…while循环语句
do…while循环语句也被成为后测试循环语句,和while类似,do…while的特点就是无论循环条件是否成立,都会无条件的执行一次,然后才会根据循环条件来判断是否继续执行
do{ 执行语句 . . . }while(循环条件);3.for循环语句
for循环语句是最常用的循环语句,一般用在循环次数已知的情况下,通常情况下可以代替while循环
for(初始化表达式;循环条件; *** 作表达式){ 执行语句 . . . }
for关键字后面的()中包括了三部分内容:初始化表达式/循环条件/ *** 作表达式,他们中间用英文;来分割
例如:秋1到4的累加结果
for(int i = 1;i <= 4;i++){ sum += i; }4.循环嵌套
while/do…while/for语句都是可以进行嵌套使用的,我们最常用的是for循环嵌套
for(初始化表达式;循环条件; *** 作表达式){ . . for(初始化表达式;循环条件; *** 作表达式){ 执行语句 . . . } . . }
例如:
- 打印一下内容
********* ********* ********* *********
for (int i = 0; i < 5; i++) { for (int j = 0; j < 10; j++) { System.out.print("*"); } System.out.println(); }
- 打印九九乘法表
1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
先找规律:
- 两个乘数都是 1到9,共有九行九列。第一行有一个,第二行有两个。第一个乘数都是小于等于第二个乘数。
// 每一个的第一个乘数就是行号 public static void main(String[] args) { for (int i=1; i<=9; i++){ for (int j=1; j<=i; j++){ System.out.print(i+"*"+j+"="+(i*j)+" "); } System.out.println(); } }5.跳转语句
- break语句
在switch语句和循环语句中都可以使用break语句,当他出现在switch语句中,作用是终止某个case并跳出switch语句.当他出现在循环语句中,作用就是跳出当前循环结构语句,执行后面的代码
- continue语句
continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)