Java基础教程——Java条件控制语句

网友投稿 598 2022-05-29

七、分支控制语句

包含循环控制语句和条件控制语句

1. 循环控制语句

1. 自我提问

今天学到了个新知识,在学习一个东西前,先提出自己的一些问题,然后在学习,可能效率会高一点,那么就来提出一些问题吧

什么是循环控制语句?

他能干什么?

它有什么类型?

2. 回答问题

1. 什么是循环控制语句?

循环控制语句在于循环,能够让你在进行重复的操作时省时省力

2. 他能干什么?

举个例子:让你从1数到100,你数出来,会花费不短的时间,但是你让计算机数的话,计算机很快就能给你数出来,甚至可以说是瞬间

这个例子可能不太恰当,那么就来一个更加容易理解,也是学循环控制语句被玩烂的东西:1累加到100。让你手动算的话,要花费很多时间(不要跟我说什么你会数学,也能很快算出来,咱这边先不考虑,只是举个例子),但是让程序去用循环控制语句算的话就很快,也是瞬间。

3. 它有什么类型?

for循环,由关键字for开头的

for(初始化;表达式;更新){ 代码块 }

while循环,由while关键字开头的

while(表达式){ 代码块 }

do…while循环,由do开头,中间由while衔接的

do{ 代码块 }while(表达式);

3. 使用

通过例子,帮助理解

1.使用for循环实现1-100的累加

public class 循环 { public static void main(String[] args) { int num = 0; //声明一个用来接收累加结果的变量 for (int i = 0;i<=100;i++){ num = num + i; } System.out.println(num); } }

for循环直接在for后面跟初始体(int i = 0),限制条件(i<=100)和更新体(i++),中间需要用半角分号隔开,这是不可更改的 这个代码的意思是:初始化i是0,限制i的最大值是100,每次进行将num+i的值赋值给num循环后,让i+1。循环100次。结果是5050。

2.使用while循环实现1-100的累加

public class 循环 { public static void main(String[] args) { int num = 0; int i = 0; while (i<=100){ num = num + i; i+=1; } System.out.println(num); } }

while循环里面的初始体需要在循环外面定义,更新体在循环内部,限制条件在while后面的括号里。

3.使用do...while实现1-100的累加

public class 循环 { public static void main(String[] args) { int num = 0; int i = 0; do { num = num + i; i+=1; }while (i<=100); System.out.println(num); } }

do...while循环,先执行do后面的代码块,再进行更新体的更新

4.嵌套循环

循环我们已经知道了,那么嵌套循环是什么? 嵌套循环就是循环里面还有循环,用前段时间的网络用语就是循环套娃,当然,嵌套循环在生活中也是非常的常见的,比如:你要围着操场跑三圈,,每一圈都要跑多少步。跑三圈就是一个大点的循环,那么你跑一圈要多少步就是多少个小循环。那么代码表示大概就是这样:

跑的第一圈

迈左脚

迈右脚

......

七、分支控制语句

包含循环控制语句和条件控制语句

1. 循环控制语句

1. 自我提问

今天学到了个新知识,在学习一个东西前,先提出自己的一些问题,然后在学习,可能效率会高一点,那么就来提出一些问题吧

什么是循环控制语句?

他能干什么?

它有什么类型?

2. 回答问题

循环控制语句在于循环,能够让你在进行重复的操作时省时省力

举个例子:让你从1数到100,你数出来,会花费不短的时间,但是你让计算机数的话,计算机很快就能给你数出来,甚至可以说是瞬间

这个例子可能不太恰当,那么就来一个更加容易理解,也是学循环控制语句被玩烂的东西:1累加到100。让你手动算的话,要花费很多时间(不要跟我说什么你会数学,也能很快算出来,咱这边先不考虑,只是举个例子),但是让程序去用循环控制语句算的话就很快,也是瞬间。

for循环,由关键字for开头的

for(初始化;表达式;更新){ 代码块 }

while循环,由while关键字开头的

while(表达式){ 代码块 }

do…while循环,由do开头,中间由while衔接的

do{ 代码块 }while(表达式);

3. 使用

通过例子,帮助理解

public class 循环 { public static void main(String[] args) { int num = 0; //声明一个用来接收累加结果的变量 for (int i = 0;i<=100;i++){ num = num + i; } System.out.println(num); } }

for循环直接在for后面跟初始体(int i = 0),限制条件(i<=100)和更新体(i++),中间需要用半角分号隔开,这是不可更改的 这个代码的意思是:初始化i是0,限制i的最大值是100,每次进行将num+i的值赋值给num循环后,让i+1。循环100次。结果是5050。

public class 循环 { public static void main(String[] args) { int num = 0; int i = 0; while (i<=100){ num = num + i; i+=1; } System.out.println(num); } }

while循环里面的初始体需要在循环外面定义,更新体在循环内部,限制条件在while后面的括号里。

public class 循环 { public static void main(String[] args) { int num = 0; int i = 0; do { num = num + i; i+=1; }while (i<=100); System.out.println(num); } }

do...while循环,先执行do后面的代码块,再进行更新体的更新

Java基础教程——Java条件控制语句

4.嵌套循环

循环我们已经知道了,那么嵌套循环是什么? 嵌套循环就是循环里面还有循环,用前段时间的网络用语就是循环套娃,当然,嵌套循环在生活中也是非常的常见的,比如:你要围着操场跑三圈,,每一圈都要跑多少步。跑三圈就是一个大点的循环,那么你跑一圈要多少步就是多少个小循环。那么代码表示大概就是这样:

跑的第一圈

迈左脚

迈右脚

......

迈左脚

迈右脚

......

跑的第两圈

迈左脚

迈右脚

......

迈左脚

迈右脚

......

跑的第三圈

迈左脚

迈右脚

......

迈左脚

迈右脚

......

用代码将:跑三圈 ,每圈4步 表现出来

public class ForExample{ public static void main(String[] args){ for (int i = 1;i<=3;i++){ System.out.println("第"+i+"圈"); int j = 1; while (j<=4){ System.out.println("迈左脚"); System.out.println("迈右脚"); j++; } } } }

这个是for里面嵌套了一个while循环,外部循环一次,内部循环四次;意思就是按顺序循环,外面第一次循环,然后进入内部进行执行,进入内部又碰到循环,在里面需要把内部循环循环完成才能进行外部循环的第二次循环。这个代码循行的结果是:

/* 第1圈 迈左脚 迈右脚 (循环四次) 第2圈 迈左脚 迈右脚 (循环四次) 第3圈 迈左脚 迈右脚 (循环四次) */ //不展示那么多,免得说占字数

如果把这个理解了,那么可以尝试一下各种循环互相嵌套。

课后小练习

分别使用三个循环进行99乘法表的实现

2. 条件控制语句

条件控制语句用人的话来说就是,如果....就..... 这么一听的话,是不是就觉得很简单了,那么去看看他怎么在代码中显示吧,不过在此之前,我们先去复习一下循环控制语句的小练习吧。

1.最简单的if语句

我们会在这里说明最简单的if语句,帮助理解if语句。

if(条件){ 代码块 } 为什么说最简单呢,因为她只有一个if,没有别的了,意思就是,如果这个条件正确,就执行下面的代码块。如果错误,就跳过,条件的值必须是布尔值。比如:如果我十八岁了,我就可以去网吧上网。如果就是Java代码中的if,我是否十八岁是括号里面的条件,就可以去网吧上网是代码块。

int age = 18; if (age>=18){ System.out.println("可以去网吧上网"); }

是不是很简单,这个时候,我们可以这样做:

String text = "理解"; String me; if (me == text){ System.out.println("就这"); }

看懂的掌声,啪啪啪啪啪~~

2.if...else...语句

这次我们的if有了个跟班,名字叫做else,大家应该都学过英语,都知道是什么意思吧。没错,其他。

我们if...else...的格式是这样的:

if (条件表达式){ 代码块; }else{ 代码块; }

上面已经说过,条件的值是布尔类型的,只有两个值,true和false,那这个的意思就是,如果条件是true,那么就执行if下面的代码块,如果是false就执行else下面的代码块。

明天是周末,假如我们计划:如果明天不下雨,那么我就出去跑步,如果下雨,就在家里读书。那么用代码写出来,应该不是很难吧

String weather = "不下雨"; if (weather == "不下雨"){ System.out.println("出去跑步"); }else{ System.out.println("在家读书"); }

3.if...else if...else... 语句

上面哪一种是只考虑了两种情况,但是有时候往往两种情况是不适用于我们的实际运用的,比如说成绩,60以下是不及格,60-80是及格,80-100是优秀,这就有了三种情况,用if...else...就不行了,而我们的if...else if...else 语句应运而生。

语句格式:

if(表达式){ 代码块; }else if(表达式){ }else{ 代码块; }

下面我们就对这个成绩进行划分

int score = 80; if (score<60&&score>=0){ System.out.println("不及格"); }else if (score>=60&&score<80){ System.out.println("及格"); }else { System.out.println("优秀"); } }

当然,还能有更多的情况,更多的情况就是更多的else if

4.嵌套的条件控制语句

条件控制语句,我觉得就是限制住某个条件才能执行,而嵌套的if就是在限制了一个条件后,再进行一次限制。

比如我们上面的划分成绩的例子中,我么后在对60-80的同学进行限制的时候,是用了我们说过的逻辑运算符,与,这个我们也可以使用嵌套来做。

下面看看用代码显示吧。

int score = 81; if (score>=60){ if (score<80){ System.out.println("及格"); } } }

当然这个只是最简单的,我们就用嵌套把3中的第一个限制条件也改了吧

int score = 1; if (score<60){ if (score>=0){ System.out.println("不及格"); } }else if (score<80){ if(score>=60){ System.out.println("及格"); } }else { System.out.println("优秀"); }

switch语句的格式

学习语法嘛,要先看怎么用的,也就是,格式

switch(表达式){ case 值 ://语句 break; //可选 case 值 ://语句 break; //可选 //你可以有任意数量的case语句 default : //语句 //可选 }

嚯,这一看,不得了:这是什么玩意啊?

不慌,我们先看看怎么用的,就用猜拳游戏当例子吧

import java.util.Random; //导入Random包,用于取随机数 import java.util.Scanner; //导入Scanner包,用于从键盘获取数据 public class 猜拳 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //只有sc是自定义的,别的地方都是固定语法 Random ra = new Random(); //固定语法 System.out.println("请输入你猜拳的数!规则如下:"); System.out.println("0——————石头"); System.out.println("1——————剪刀"); System.out.println("2——————布"); int a = sc.nextInt(); //用a从键盘接受一个整形类型的数据 int pc = ra.nextInt(2); //用pc变量接受一个从0 1 2 中随机取的数 String guiZe = null; //初始化变量 String pc1 = null; //初始化变量 switch (a){ case 0: guiZe = "石头"; break; case 1: guiZe = "剪刀"; break; case 2: guiZe = "布"; break; } switch (pc){ case 0: pc1 = "石头"; break; case 1: pc1 = "剪刀"; break; case 2: pc1 = "布"; break; } if (pc == a){ System.out.println("平局!"); System.out.println("你出的是:"+guiZe); System.out.println("电脑出的是:"+pc1); }else if (pc >= a){ System.out.println("你输了!"); System.out.println("你出的是:"+guiZe); System.out.println("电脑出的是:"+pc1); }else { System.out.println("你赢了!"); System.out.println("你出的是:"+guiZe); System.out.println("电脑出的是:"+pc1); } } }

话外语

Random包,用于取随机数

Random ra = new Random(); ra.nextInt(2);

Scanner包,用于从键盘获取数据 用法:

Scanner sc = new Scanner(System.in); sc.next类型();类型首字母必须大写

与switch语句再续前缘

好,话外语已经说完了,继续我们的switch,既然代码那么长,就是看switch的部分吧

switch (a){ case 0: guiZe = "石头"; break; case 1: guiZe = "剪刀"; break; case 2: guiZe = "布"; break; default: guiZe = "不符合规则"; } switch (pc){ case 0: pc1 = "石头"; break; case 1: pc1 = "剪刀"; break; case 2: pc1 = "布"; break; }

这个看着蛮复杂的,其实也算是个条件控制语句,我们先看第一个,其实只看第一个也就行了,开整,冲 如果a的值和case后面的值相等了,那么就执行冒号后面的代码,而如果没有相等的,就执行default后面的代码。好,我觉得我说的很详细了,就不多说了! 我觉得

多一嘴

好吧,还是有必要多说几句的 表达式的值可以是:byte、short、int 、char、String,且case标签必须是字符串常量或字面量 好了,这次是真的没了!

彩蛋

本来是不想说的,但是看很多人都没发现,还是说一下,文中的猜拳小游戏有些逻辑上的错误哦,由于懒(确实是懒,不是理由哈哈),错误是什么我就不说了,自己找吧,就当锻炼一下自己,当程序员,找错是必不可少的技能,冲冲冲

课后小练习

判断一个数(由自己定义)是否是质数

什么是质数:「只能被1和他本身整除的数就是质数。」 例如:2、3、5、7、11、13…

课后小练习答案

1. for循环实现九九乘法表

首先先分析分析怎么做到,我们知道,循环是连续执行的,那么怎么让程序将九九乘法表展示给我们呢?我们先回顾一下九九乘法表长什么样子

回想一下我们的循环,再结合这张图,我们能想到什么呢?第一行,只有一个,第二行,两个,第三行,三个...... 我们可以用嵌套循环,外部循环表示纵的,内部循环表示横的,第一次循环,只输出1*1=1,只循环一次,第二行循环2次。。。做为限制条件,横的有9行,外部循环就以9为限制条件,那内部循环用什么呢,用纵列和行数的关系做为限制条件,就行了,代码如下

public class Te0 { public static void main(String[] args) { for (int i = 1;i<=9;i++){ for (int j = 1;j<=i;j++){ System.out.print(j+"*"+i+"="+(i*j)+" "); //这个地方注意要用print,这个函数的意思是输出完不换行 //后面加空格是不让每个都连在一起 } System.out.println(" "); //这句的作用是,每次循环结束后,换行 } } }

结果:

1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

2.质数

先回顾一下题目:

判断一个数(由自己定义)是否是质数

什么是质数:只能被1和他本身整除的数就是质数。 例如:2、3、5、7、11、13…

想必对大家来说这个是很简单的吧!

import java.util.Scanner; public class Test { public static void main(String[] args) { boolean isPrime = true; Scanner sc = new Scanner(System.in); System.out.println("请输入一个正整数"); int num = sc.nextInt(); if (num > 0) { int k = (int) Math.sqrt(num);//k为num的正平方根,取整数 // 考虑平方根是为了减少重复量,开平方后面的数不处理 /* 素数是因子为1和本身, 如果数c不是素数,则还有其他因子,其中的因子 假如为a,b.其中必有一个大于sqrt(c) , 一个小于sqrt(c) 所以m必有一个小于或等于其平方根的因数,那么验证素数时就只需要验证到其平方根就可以了 */ for (int i = 2; i <= k; i++) { if (num % i == 0) { isPrime = false; //不是素数 break; } } } if (isPrime) { System.out.println(num + "是素数"); } else {

Python

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:昇腾CANN社区版安装体验
下一篇:【Altium Designer】 6 Pcb布局布线规则
相关文章