前言
前一篇文章中,我们讲解了java的一些基础算术运算符。经过前面几期的学习,你是不是对java产生了一定的兴趣了呢?接下来我们就要转变一下我们的学习方法了哟!我们先来总结一下:
前面学习的东西只是概念、格式的内容。只需要记忆+多练习就可以啦
从现在开始,后面的代码我们需要加入一点东西,那就是循环逻辑啦!
目录
- 顺序结构
- 分支结构
- 循环结构
我们先来看第一部分:顺序结构!
顺序结构
什么是顺序结构呢?
顺序结构是java默认的执行过程,按照代码的先后顺序从上到下执行!我们来看段代码:
public static void main(String[] args) {
// 顺序结构
System.out.println("我是语句块1");
System.out.println("我是语句块2");
System.out.println("我是语句块3");
System.out.println("我是语句块4");
}
怎么样,是不是很好理解呢?那我们接下来加深“亿”点难度吧!
分支结构
分支结构呢又分两种,我们一起来学习吧!
if循环
if单分支
我们先来说一下if基本语法:在Java代码中,如果我们要根据某个条件来决定是否执行一段代码,就可以考虑使用if语句。if语句的基本语法是:
if(条件表达式){
//满足条件时要执行的语句
}
在上面的语法中,会根据if(条件表达式)里的计算结果(true或者false).如果为true,就执行,否则就不执行。
下面我们来看一个案例:
public static void main(String[] args) {
// if单分支
//需求:有一家网吧,你想进去上网,但是网吧规定18岁才能进去,小于18岁不允许进去!
// 1.提示你输入年龄
System.out.println("请输入你的年龄:");
// 2.键盘录入年龄
Scanner sc = new Scanner(System.in);
int age = sc.nextInt();
if(age < 18){
System.out.println("你还满18岁不可以进去哟!");
}
}
下面我们来说一下单分支的执行过程:
1.首先执行关系表达式。
2.如果关系表达式的值为true就执行语句块。
3.如果关系表达式的值为false就不执行语句块。
4.继续执行后面的其他语句块。
下面我们来说一个if...else多分支!
if...else多分支
if...else...结构会根据条件表达式的结果进行判断,当表达式的结果为true,则执行语句块A;否则执行else后面的语句块B。if...else...的基本语法是:
if(条件表达式){
//语句块A
}else{
//语句块B
}
我们来看一个案例:
// 需求:键盘录入一个整数表示身上的钱,如果大于100就去吃肯德基,如果小于100就去吃沙县小吃90。
// 1.由键盘输入一个数字表示身上的钱。
Scanner sc = new Scanner(System.in);
System.out.println("请输入你身上的钱:");
// 2.拿钱进行判断
int money = sc.nextInt();
if(money >= 100){
System.out.println("我可以吃肯德基啦!");
}else{
System.out.println("我要去吃沙县小吃");
}
可以看到我们输入的70不大于等于100,结果为false,所以执行语句块2。
我们来看一段进阶版的多分支吧:
// 需求:假设某电影院售卖了100张票,票的序号为1-100。其中键盘录入一个整数表示电影的序号。
// 如果票数如果为奇数就打印坐左边,如果票数为偶数那么就打印坐右边
// 1.键盘录入一个整数表示电影票序号
Scanner sc = new Scanner(System.in);
// 2.提示输入
System.out.println("请输入你的电影票序号:");
int ticket = sc.nextInt();
// 3.判断只有当ticker在0-100之间,才是真实的票
if(ticket >= 0 && ticket <= 100) {
// 4.判断电影票是奇数还是偶数
if (ticket % 2 == 1) {
System.out.println("请坐左边!");
} else {
System.out.println("请坐右边!");
}
}else{
System.out.println("你输入的不是真实的票!");
}
这个案例就有点用到了嵌套了,首先我们先判断你输入的票是否小于等于100,如果小于等于100才会跳到里面的if进行判断,如果大于100呢就会不执行里面的if,跳出来执行外面的打印语句块!
下面我们来说一下多分支的执行过程:
1.首先执行关系表达式。
2.如果关系表达式的值为true就执行语句块A。
3.如果关系表达式的值为false就执行语句块B。
4.继续执行后面的其他语句块。
我们学习完了if的单分支和多分支,下面再来学一下if的第三种格式:嵌套吧!
if嵌套
if嵌套的基本语法:
if(条件表达式1){
//满足条件表达式1执行的代码
}else if(条件表达式2){
满足条件表达式2执行的代码
}else if(条件表达式3){
满足条件表达式3执行的代码
}else{
语句块n+1
}
下面我们来看一张执行过程:
1.首先执行关系表达式1。
2.如果表达式为true就执行语句块1,如果为false就计算表达式2的值。
3.如果表达式2的值为true就执行语句块2,如果为false就计算表达式3的值。
......
4.如果关系表达式结果都为false,那么就执行语句块n+1。
这么看是不是有点绕呢?没关系,我们用案例来实操看一下:
// 需求:小明考试如果95-100分就奖励自行车一辆,
// 如果是90-94分就去游乐场玩一天,
// 如果是80-89分就送变形金刚一个,
// 如果是80分以下就揍一顿。
// 1.由键盘录入一个分数
Scanner sc = new Scanner(System.in);
// 2.提示输入分数
System.out.println("请输入你的分数:");
int score = sc.nextInt();
if(score >= 0 && score <= 100){
if(score >= 95 && score <= 100){
System.out.println("奖励自行车一辆");
}else if(score >= 90 && score <= 94){
System.out.println("奖励游乐场一天!");
}else if(score >= 80 && score <= 89){
System.out.println("奖励变形金刚一个!");
}else if (score <= 80){
System.out.println("准备接受制裁吧!");
}
}else{
System.out.println("请输入有效数字!");
}
具体怎么实现呢?我们来看一下流程:
我们会先执行表达式1,如果表达式1成立的我们就进到里面执行表达式3,如果不成立的话直接执行表达式2。然后在表达式里面依次对键盘输入的数进行判断,如果成立的话就输出对应的语句块,如果都没有成立呢就会执行最后那个else语句,最后退出循环!
到这里我们就学完了分支结构的第一个啦。我们下面来继续学习分支结构的第二个:switch。
switch
switch的基本语法:
switch(表达式){
case 值1:
语句块1;
break;
case 值2:
语句块2;
break;
case 值3:
语句块3;
break;
...
default:
语句块n+1;
break;
}
下面我们来看一下格式:
- 表达式(要将匹配的值)取值为byte,short,int,char。
- case:后面跟的是要和表达式进行比较的值(被匹配的值)
- break:表示中断,结束的意思。
- default:表示所有情况都不匹配的时候就会执行里面的语句块。
- case后面的值只能是字面量,不能是变量。
- case给出的值不能够出现重复。
我们来说一下执行过程吧:
- 首先计算表达式1的值
- 依次和下面case的值进行比较,如果有对应的就执行里面的语句块,在执行过程中遇到break就会直接结束。
- 如果所有的case的值都不匹配的话就会执行default里面的语句块,然后结束整个seitch语句。
下面我们来用代码实操一个案例看看吧:
//需求:一家店里面有兰州拉面,武汉热干面,北京炸酱面,陕西油泼面
// 键盘输入你想吃的面,如果有则输出,没有的话输出吃泡面去吧。
// 1.由键盘输入你想吃的面
Scanner sc = new Scanner(System.in);
// 2.提示用户输入想要吃的面
System.out.println("请输入你想要吃的面:");
String noodles = sc.nextLine();
// 3.获取你输入的面进行下面的值进行比较
switch (noodles){
case "兰州拉面":
System.out.println("兰州拉面来了老弟!");
break;
case "武汉热干面":
System.out.println("武汉热感卖弄来了老弟!");
break;
case "北京炸酱面":
System.out.println("北京炸酱面来了老弟!");
break;
case "陕西油泼面":
System.out.println("陕西油泼面来了老弟!");
break;
default:
System.out.println("没有,吃你的泡面去吧!");
break;
}
我们运行看一下:
这么说是不是就明白了呢,获取表达式的值进行匹配就可以了呢!
以上就是switch循环的知识点啦,那下面我们来学一下循环结构吧!
循环结构
什么是循环呢?
1.重复的做某件事情。
2.具有明确的开始和停止标记。
循环的分类:
- for循环
- while循环
- do...while循环
其中呀最常用的就是for循环和while循环,至于do...shile循环几乎不用,所以只需要了解就可以啦!
for循环
for循环的格式:
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
// 打印10次HelloWorld
for(int i = 1;i<= 10 ;i++){
System.out.println("HelloWorld"),
}
我们来解释一下这段代码:
变量i表示初始位置从1开始,然后会执行条件判断语句,
如果成立的话就打印出一次HelloWorld,
然后在执行条件控制语句++,执行完后继续返回执行条件判断语句,
直到条件判断语句不成立就退出循环体。
下面我们来说明一下执行过程吧:
- 执行初始化语句。
- 执行条件判断语句,看其结果是true还是false。
- 如果是true,执行循环体语句。 如果是false,循环结束。
- 执行条件控制语句
- 回到2继续执行条件判断语句
我们再来看一段案例:
/* 需求:在实际开发中,重复需要执行的代码,会选择循环结构。
例如玩游戏的时候网不好那么是不是会经常断线重连呢?
那么断线重连这个业务就需要我们用到循环重复执行啦。
假设现在公司要求断线重连的业务逻辑最多只写五次,怎么实现呢?
*/
// 分析:循环次数为5次,开始条件1次,结束条件5.
for(int i = 1;i <= 5; i++){
System.out.println("第" + i + "执行断线重连业务逻辑");
}
我们运行可以看到确实打印了5次,如果想要打印6次怎么办呢?很简单,只需要把条件判断语句的值改一下就可以啦,怎么样是不是很简单呢!
while循环
while循环的格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
这里可以看到循环结构和for循环是类似的。
while循环执行过程其实和for是一样的呢
下面我们来看一段案例:
public static void main(String[] args) {
// 需求:利用while循环打印10
int i = 1;
while(i <= 10){
System.out.println(i);
i++;
}
}
到这里while循环就讲完啦,我们接下来看一下for和while循环有什么相同点和不同点:
相同点:运算规则都是一样的。
不同点:for循环中,控制循环的变量,在循环结束后就不能在被访问到了。
而while循环中,控制循环的变量,在循环结束后该变量还可以继续使用。
那我们什么时候用for,什么时候用while呢?
其实我们可以判断条件,当知道循环次数或者循环范围的时候就用for循环,而不知道循环次数和范围,只知道循环结束条件的时候我们就可以用到while循环啦!
do...while循环
do...while循环我们在后面用的比较少,所以只需要了解一下就可以啦!
do...while循环的格式:
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句)
以上就是三种循环结构体知识点啦,有什么不懂的可以评论在评论区,都会一一解答哟,我们下期再见!!!
==最后非常感谢您的阅读,也希望能得到您的反馈 ==