springboot 整合使用redis发布订阅功能

在Java中有3种流程控制结构:顺序结构、选择结构、循环结构。顺序结构顺序结构是指程序从上向下依次执行每条语句的结构,中间没有任何的判断和跳转。

选择结构

选择结构是根据条件判断的结果来选择执行不同的代码。选择结构可以细分为单分支结构、双分支结构和多分支结构。Java提供了if控制语句和switch语句来实现选择结构。

if ; if…elseseitch

if

在Java当中,if语句属于选择结构,if语句又被称为分支语句/条件控制语句。

if语句的语法结构

if 语句的语法结构有四种编写方式:

第一种:if(布尔表达式){java语句;java语句;java语句;…}

第二种:if(布尔表达式){java语句;java语句;…}else{java语句;java语句;…}

第三种:if(布尔表达式){java语句;java语句;…}else if(布尔表达式){java语句;java语句;…}else if(布尔表达式){java语句;java语句;…}else if(布尔表达式){java语句;java语句;…}…

第四种:if(布尔表达式){java语句;java语句;…}else if(布尔表达式){java语句;java语句;…}else if(布尔表达式){java语句;java语句;…}else {java语句;java语句;…}

重点:对于Java中的if语句来说,只要有一个分支执行,整个if语句全部结束。

注意: 1. 以上的第二种编写方式和第四种编写方式都带有else分支,这两种方式可以100%保证会有分支执行。

所有控制语句都是可以嵌套使用

例:要求输入一个三位数,判断该数是不是水仙花数。

package cn.bdqn.demo01;import java.util.Scanner;public class Demo01 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println(“请输入一个三位数:”); int num = sc.nextInt(); int baiWei = num/100; int shiWei = num/10%10; int geWei = num%10; //System.out.println(Math.pow(3,2));控制台输出的是3^2结果为9 if(Math.pow(baiWei, 3)+Math.pow(shiWei, 3)+Math.pow(geWei, 3)==num){ System.out.println(“您输入的是水仙花数!”); }else{ System.out.println(“您输入的不是是水仙花数!”); } }}

多分支if选择结构(if-else-if选择结构)执行规律:

1.先判断条件1,如果条件1为true,则执行代码块1,执行完代码块1之后,结束这个if-else-if结构,继续往下执行if-else-if结构之后的代码如果条件1为false,继续往下判断条件2,如果条件2为true,执行代码块2,执行完代码块2之后,结束这个if-else-if结构,继续往下执行if-else-if结构之后的代码3.如果条件2为false,继续往下判断条件3,…4.如果所有的条件都为false,就执行else里面的代码块n,执行完代码块n后,结束这个if-else-if结构,继续往下执行if-else-if结构后面代码注意事项:1)所有的条件不管多么简单还是多么复杂,都只能是布尔值,要么为true,要么为false2)else可以省略不写,如果所有的条件都不满足,也没有else,则整个if-else-if结构都不会执行3)if-else-if结构中的条件,如果下面的条件会引用上面条件的潜在值,条件是有顺序,严格的条件在上面例:需求:

对学员的考试成绩评测成绩>=80 :良好成绩>=60 :中等成绩<60 :差使用多重if选择结构实现public static void main(String[] args) { /* * 需求: * 对学员的考试成绩评测 * 成绩>=80 :良好 * 成绩>=60 :中等 * 成绩<60 :差 * * 使用多重if选择结构实现 * */ Scanner sc =new Scanner(System.in); System.out.println(“请输入你的考试成绩:”); double score = sc.nextDouble(); // if(score>=80&&score<=100){// System.out.println(“良好”);// }// // if(score>=60&&score<80){// System.out.println(“中等”);// }// // if(score>=0&&score<60){// System.out.println(“差”); // } // if(score>=80&&score<=100){// System.out.println(“良好”);// }else if(score>=60&&score<80){// System.out.println(“中等”);// }else{// System.out.println(“差”); // } if(score>=80){ System.out.println(“良好”); }else if(score>=60){ System.out.println(“中等”); }else{ System.out.println(“差”); } System.out.println(“继续努力…..”); }}

练习题:根据天气(晴天/下雨)来决定是室内活动还是室外活动,根据温度来决定具体的活动:晴天30°以上,室内游泳,30°一下,室外篮球,雨天25°以上,室内游泳,雨天25°一下,在家敲代码

package cn.bdqn.demo01;import java.util.Scanner;public class LianXiTi { public static void main(String[] args) { /* * 练习:根据天气(晴天/下雨)来决定是室内活动还是室外活动, * 根据温度来决定具体的活动:晴天30°以上,室内游泳,30°一下,室外篮球, * 雨天25°以上,室内游泳,雨天25°一下,在家敲代码 */ Scanner sc = new Scanner(System.in); System.out.println(“请输入当天天气:”); String weather = sc.next(); System.out.println(“请输入当天气温:”); double airTemperature = sc.nextDouble(); boolean weatherToday = weather.equals(“晴天”); if(weatherToday) //晴天 { if(airTemperature>30){ //晴天30°以上 System.out.println(“室内游泳!”); }else{ //晴天30°以下 System.out.println(“室外篮球!”); } } //雨天 else{ if(airTemperature>25){ //雨天25°以上 System.out.println(“室内游泳!”); }else{ //雨天25°以下 System.out.println(“在家敲代码!”); } } }}switch语句

语法格式:

switch(表达式){case 常量 1:语句;break;case 常量 2:语句;break;…default:语句;break;}

switch、case、break、default是Java关键字

–>JDK1.7后,switch后的表达式可以是int、short、byte、char、枚举类型、String类型表达式。 –>case用于与表达式进行匹配。 –>break用于终止后续语句的执行。 –>default是可选的,当其他条件都不匹配时执行default。

执行规律:1)计算switch后表达式的值。2)将计算结果从上至下依次与case后的常量值比较。3)如果相等就执行该常量后的代码块,遇到break语句就结束。4)如果与任何一个case后的常量值都不匹配,就执行default中的语句。注意事项:1)如果case后没有break语句,程序将继续向下执行,直到遇到break语句或switch语句结束—-“case穿透”。2)case常量值不能相同。3)default语句可以在任意位置书写,但一般写在switch结构的末尾。也可以省略不写。

练习:使用switch选择结构判断一个月份属于一年中的那个季节。(春夏秋冬)

package cn.bdqn.demo02;import java.util.Scanner;public class Subject17 { public static void main(String[] args) { /* * 使用switch选择结构判断一个月份属于一年中的那个季节。(春夏秋冬) */ Scanner sc = new Scanner(System.in); System.out.println(“请输入月份(1-12):”); int month =sc.nextInt(); switch(month){ case 12:// System.out.println(“冬季”);// break; 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; case 8: System.out.println(“夏季”); break; case 9:// System.out.println(“秋季”);// break; case 10:// System.out.println(“秋季”);// break; case 11: System.out.println(“秋季”); break; } }}

switch与多重if异同点相同点:都是用来处理多分支条件的结构不同点:switch选择结构只能处理等值条件判断的情况多重if选择结构既能处理某个变量处于某个连续区间时的情况,也能处理等值条件判断的情况

循环结构

循环结构是根据判断条件来重复性地执行某段代码。Java提供了while语句、do-while语句、for语句来实现循环。JDK5.0新提供了增强for循环,可以更简单的方式来遍历数组和集合。

whiledo…whileforwhile循环语法结构:初始值;while(循环条件){循环操作代码块;迭代部分;}例题:在控制台输出10遍好好学习,天天向上

package cn.bdqn.demo01;public class Demo01 { public static void main(String[] args) { //在控制台输出10遍好好学习,天天向上 //不使用循环来实现 System.out.println(“第1遍:好好学习,天天向上”); System.out.println(“第2遍:好好学习,天天向上”); System.out.println(“第3遍:好好学习,天天向上”); System.out.println(“第4遍:好好学习,天天向上”); System.out.println(“第5遍:好好学习,天天向上”); System.out.println(“第6遍:好好学习,天天向上”); System.out.println(“第7遍:好好学习,天天向上”); System.out.println(“第8遍:好好学习,天天向上”); System.out.println(“第9遍:好好学习,天天向上”); System.out.println(“第10遍:好好学习,天天向上”); System.out.println(“——————————–“); //使用循环来实现 int i =1; while(i<=100){ System.out.println(“第”+i+”遍:好好学习,天天向上”); i++; } }}

执行规律:1)首先执行1次初始值代码2)判断循环条件,如果循环条件为true,则执行{}里的循环操作代码块,并执行迭代部分,之后再次进行循环条件的判断,根据循环条件的结果决定是否再执行{}里的代码如果循环条件为false,则结束整个while循环结构,继续往下执行while循环结构后面的代码注意事项:1)初始值只执行1次2)循环条件不管多么简单还是多么复杂,都只能是布尔值,要么为true,要么为false3)循环操作代码块可以是一行或者多行语句,4)在循环结构中一定要有迭代部分来改变初始值,从而让循环条件再某个时候不再满足,结束循环操作,否则循环会进入死循环5)如果循环条件在第一次判断的时候就不满足,那么循环操作一次都不会执行Java中的循环控制语句有while循环、do-while循环和for循环等,循环结构的特点是在给定条件成立时,反复执行某程序段,直到条件不成立为止。

例题:使用while循环模拟打印50份试卷

package cn.bdqn.demo01;public class Demo03 { public static void main(String[] args) { //使用while循环模拟打印50份试卷 //初始值 int i =1; while(i<=50){//循环条件 System.out.println(“打印第”+i+”份试卷”);//循环操作 ++i;//迭代部分 } System.out.println(“试卷打印完毕”); }}

do-while循环结构语法结构:初始值do{循环操作代码块;迭代部分;}while(循环条件);

例题:使用do-while循环输出100遍好好学习,天天向上

public static void main(String[] args) { //使用do-while循环输出100遍好好学习,天天向上 //初始值 int i =1; do{ System.out.println(“第”+i+”遍:好好学习,天天向上”);//循环操作 i++;//迭代部分 }while(i<=100);//循环条件 System.out.println(“程序执行完毕”); }}

执行规律:1)首先执行1次初始值2)然后进入{}内执行循环操作和迭代部分3)执行完1次{}里的代码后判断循环条件,如果循环条件为true,继续执行{}里的循环操作代码块和迭代部分,

如果循环条件为false,结束整个do-while循环结构,继续往下执行do-while循环结构后面的代码

注意事项:

初始值只执行1次do-while循环是先执行1次循环操作,然后再去判断循环条件。因此如果第一次循环条件就不满足,循环操作也会执行一次循环条件不管多么的简单还是复杂,都只能是布尔值,要么为true,要么为falsefor循环语法结构:for(初始值;循环条件;迭代部分){循环操作代码块}

例题:使用for循环输出100遍好好学习,天天向上

public static void main(String[] args) { //使用for循环输出100遍好好学习,天天向上 for(int i=1;i<=100;i++){ System.out.println(“第”+i+”遍:好好学习,天天向上”); } System.out.println(“程序执行完毕”); }}

执行规律:1)首先执行1次初始值代码2)判断循环条件,如果循环条件为true,则执行{}里的循环操作代码块,执行完循环操作代码后执行迭代部分,之后再次进行循环条件的判断,根据循环条件的结果决定是否再执行{}里的代码

如果循环条件为false,则结束整个for循环结构,继续往下执行for循环结构后面的代码

注意事项:

初始值只执行1次循环条件不管多么简单还是多么复杂,都只能是布尔值,要么为true,要么为false循环操作代码块可以是一行或者多行语句在循环结构中一定要有迭代部分来改变初始值,从而让循环条件再某个时候不再满足,结束循环操作,否则循环会进入死循环如果循环条件在第一次判断的时候就不满足,那么循环操作一次都不会执行例题:输入一个值,然后根据这个值输出一下加法列表:

程序如下:

package cn.bdqn.demo03;import java.util.Scanner;public class Demo03 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println(“请输入一个值:”); int num =sc.nextInt(); System.out.println(“根据这个值可以输出以下加法表:”); for(int i =0;i<=num;i++){ System.out.println(i+”+”+(num-i)+”=”+num); } }}

循环主要由4个部分组成初始部分:设置循环的初始状态。循环体:重复执行的代码循环条件:判断是否继续循环的条件。迭代部份:改变循环条件的值。如果没有迭代部分,会出现死循环。equals函数比较两个字符串的内容是否相同规则:字符串1.equals(字符串2);这是用来比较字符串1和字符串2是否相同。

String str1 = “hello”;String str2 = “hello”;boolean result1 = str1.equals(str2);System.out.println(“str1和str2内容相同:”+result1);boolean result2 = str1.equals(“Hello”);System.out.println(“str1和str2内容相同:”+result2);

运行结果:

随机函数产生随机数(0.0~1.0)的方法:

模板:double num1 = Math.random();Math.random()随机返回的是一个[0.0,1.0)的double类型的数据。产生随机数(0~1)的方法:package cn.bdqn.demo01;public class randomHanShu { public static void main(String[] args) { int num1 = (int)(Math.random()*10); System.out.println(num1); }}

随机结果如下:

每次随机的结果都是不一样的。那么随机获取一个[19,31)之间的 int 型数据怎么办呢?···int num3=(int)(Math.random()*12+19);System.out.println(num3);···解释:012=0;112=120+19=19;12+19=31

随机获取[num1,num2)之间的int型数据:

(int)(Math.random)*(num2-num1)+num1

痛苦留给的一切,请细加回味!苦难一经过去,苦难就变为甘美。

springboot 整合使用redis发布订阅功能

相关文章:

你感兴趣的文章:

标签云: