03《JAVA从零到壹》第三讲:条件循环
❤️作者主页:小虚竹
❤️作者简介:大家好,我是小虚竹。Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作者🏆,阿里云专家博主🏆
❤️技术活,该赏
❤️点赞 👍 收藏 ⭐再看,养成习惯
@[toc]
选择结构
选择语句又称为分支语句,它通过对给定的条件进行判断,从而决定执行两个或多个分支中的哪一支。
示例:为了判断一个数是偶数还是奇数,执行如下操作:
java语言支持两种选择语句:
- if 语句
- 单分支选择
- 双分支选择
- 多重选择
- switch 语句
If/else语句
-
通过条件为真还是为假来决定
-
常规格式:
if (表达式)
{
语句;
} -
表达式是要判断的条件,跟在后面的是一个或一组语句
-
在if后的语句不止一个,应用大括号{}将他们组织起来。这样的组会称为“复合语句”或“代码块”。如果只有一个语句,大括号{}可以省略,但不建议。
代码初体验:
public class TestIf1 {
public static void main(String[] args) throws Exception {
int x, y;
char a = 'y';
x = y = 0;
if (a == 'y'){
x += 5;
System.out.println("The numbers are “ + x + ” and " + y);
}
}
}
if…else语句
-
可以选择两个语句中的一个来执行
-
语法形式:
if(表达式) { 语句-1; } else { 语句-2; }
-
如果 if 表达式的值为true,将执行 if 语句(一个或一组)后的语句块
-
如果 if 表达式的值为false,那么控制权将交给else 表达式后面的语句
-
else语句是可选的。 仅当 if 表达式的值为false时,才会执行else后的语句或语句序列
代码初体验:
public class TestIf2 {
public static void main(String[] args) throws Exception {
//这个程序用来显示一个数是偶数还是奇数
int num=3 , res ;
res = num % 2;
if (res == 0){
System.out.println("Then number is Even");
}else{
System.out.println("The number is Odd ");
}
}
}
if…else if…语句
if-else-if 语句也称为 if-else-if 台阶或if-else-if 阶梯
条件的计算是自顶向下的
建议书写格式:
if (表达式1)
语句1;
else if (表达式2)
语句2;
else if (表达式3)
语句3;
else
语句4;
public class TestIf3 {
public static void main(String[] args) throws Exception {
int x =1;
if(x==1){
System.out.println("Choice is 1");
}else if ( x == 2){
System.out.println ("Choice is 2");
}else if ( x == 3){
System.out.println ("Choice is 3");
} else{
System.out.println("Invalid Choice ");
}
}
}
嵌套的if语句
-
嵌套的 if 语句就是在 if 或 else 语句中包含另一个 if 语句
-
在 java 语言中,else 语句通常与同一块中距离它最近且未与 else 关联的 if 语句相匹配,与书写格式无关
-
语法示例:
if (表达式-1)
{
if (表达式-2)
语句-1;
if (表达式-3)
语句-2;
else
语句-3;
/与if(表达式-3)相匹配/
}
else
语句-4;
/与if (表达式-1)相匹配/
代码初体验:
public class TestIf4 {
public static void main(String[] args) throws Exception {
int x=1, y=2;
if (x == 1){
if (y <= 5){
System.out.println("The value for y is : "+y);
}else{
System.out.println("The value of y exceeds 5");
}
} else{
System.out.println("Choice entered was not 1");
}
}
}
swtich语句
-
switch 语句是一种多路判定语句,它判断表达式的值是否与整数或字符常量列表中的某个值相匹配
-
若找到了相应的匹配,就会执行与常量关联的语句
-
注:不能匹配字符串
-
通用语法:
switch(表达式)
{
case 常量1:
语句集;
break;
case 常量2:
语句集
break;
……
default:
语句集;
break;
}
switch、case、和default都是关键字,语句可以是简单或复合语句。
switch后的表达式需要用圆括号括起来,而且switch语句的主题用{ }括起来
计算表达式的数据类型要与指定的case常量的数据类型匹配。
switch后的表达式可以包含任何变量名,也可以是常量。
case后面只能是常量(整型和字符型)。//menu枚举类型
switch语句执行过程:
代码初体验:
public class TestSwitch1 {
public static void main(String[] args) throws Exception {
int basic=200;
switch(basic) {
case 200:
System.out.println("Bonus is dollar" + 50);
case 300:
System.out.println("Bonus is dollar" + 125);
break;
case 400:
System.out.println("Bonus is dollar" + 140);
break;
case 500:
System.out.println("Bonus is dollar" + 100);
break;
default:
System.out.println("Invalid entry");
break;
}
}
}
在上面的程序中,如果表达式与其中的一个case标记匹配,switch语句是很有用的
不能用来判断一个值是否在指定的范围内, 这种情况下还是使用if-else 语句
条件运算符
-
条件运算符是java语言中唯一的三目运算符
表达式1 ? 表达式2 :表达式3
-
条件运算符的优先级高于赋值运算,低于关系和算术运算符
-
结合方式:从右向左
-
条件表达式的计算:表达式1先被计算,如果表达式1的值为true,(条件成立,逻辑为真)就计算表达式2的值并将计算结果作为整个条件表达式的值;如果表达式1的值为false,(条件不成立,逻辑为假)就计算表达式3的值并将计算结果作为整个条件表达式的值
循环是程序中重复执行,直到满足指定条件才停止的一段代码
java语言中,控制循环执行的条件在编码时用到了关系和逻辑运算符
循环结构
循环是程序中重复执行,直到满足指定条件才停止的一段代码
java语言中,控制循环执行的条件在编码时用到了关系和逻辑运算符
java有三种循环:
- for 循环
- while 循环
- do…while 循环
for 循环
-
for循环的通用语法:
for(1初始化计数 ; 2条件测试 ; 4再求值参数)
{
3语句;//如果是复合语句,{}不能省略
} -
初始化计数是一个赋值语句,它在进入循环前设置循环控制变量
-
条件测试是一个关系表达式,它决定何时退出循环
-
再求值参数定义每次执行循环时,循环控制变量如何变化
-
for 循环的三个部分必须用分号 ; 隔开
-
组成循环体的语句可以是单个语句,也可以是复合语句
要正确表达循环结构应注意三方面的问题:控制变量的初始化,循环的条件和控制变量的更新。
工作原理:
1、初始化计数,给循环变量赋初始值。
2、条件测试,求值结果为 true,就执行循环体内的代码执行。当条件变为 false时退出循环,程序将继续执行 for 循环后面的语句
3、循环变量变化计算
4、重复第二步条件测试
代码初体验1:
简易的for循环
public class TestFor1 {
public static void main(String[] args) throws Exception {
for (int count = 1; count <= 6; count++) {
System.out.println("小虚竹真帅 +"+count);
}
}
}
代码初体验2:
for循环里有运算
public class TestFor2 {
public static void main(String[] args) throws Exception {
int i,n=10;
long fact=1;
for(i=2; i<=n; i++){
fact*=n;
}
System.out.println("n ="+n);
System.out.println("fact ="+fact);
}
}
代码初体验3:
在for循环中的使用逗号运算符
public static void main(String[] args) throws Exception {
int i, j , max=10;
for(i = 0 , j = max ; i <=max ; i++, j--) {
System.out.println(i+" + "+j+" = "+(i+j) );
}
}
for循环扩展
- 使用for循环可以包含部分定义,或不包含任何定义
for( ;num < 100;) 或 for( ; ;)
- 使用for循环可以不包含任何循环体(语句),有助于提高某些算法的效率和创建时间延迟循环
for(int i=0;i<xyz_value;i++)
- for循环侧重的是循环次数
while 循环
通用语法:
while ( 表达式 ){
语句 ;
}
-
表达式一般为关系表达式或者逻辑表达式
-
语句可以是空语句、一个简单的语句或语句块
-
如果while循环中包含一组语句,必须用{}括起来
-
只要条件为真循环就会迭代(遍历、循环)
代码初体验1:
简易的while循环
public class TestWhile1 {
public static void main(String[] args) throws Exception {
int count = 1;
while( count <= 10) {
System.out.println(" while 循环计数: "+count);
count++;
}
System.out.print("循环结束 ");
}
}
和for循环一样,while循环在执行循环前检查条件
do…while 循环
通用语法:
do
{
语句;
}while (条件) ;
-
while后面的分号不能省略
-
do…while 循环中,循环体中的代码在条件测试执行前执行一次
-
条件为 false 时,do while 循环终止;控制权传递给紧跟在 while 语句之后的语句
代码初体验:
public class TestWhile2 {
public static void main(String[] args) throws Exception {
int num1=0, num2= 0;
do {
System.out.println(" No. is :"+num1);
num2++;
} while (num1 != 0);
System.out.println("The total numbers entered were:"+num2);
}
}
三个循环的区别和总结
-
while和for语句先判断循环控制条件,do-while语句后判断循环控制条件,所以,while和for语句的循环体可能一次也不执行,而do-while语句的循环体至少也要执行一次。
-
三种循环可以处理同一问题,一般情况可以互相代替。但在实际应用中,我们要根据具体情况来选用不同的循环语句。选用的一般原则如下:
-
如果循环次数在执行循环体之前就已确定,一般用for语句;如果循环次数是根据循环体的执行情况确定的,一般用while语句或者do-while语句。
-
当循环体至少执行一次时,用do-while语句;反之,如果循环体可能一次也不执行时,用while语句。
-
嵌套循环
-
如果一个循环出现在另一个循环中,则称它为嵌套循环。
-
三种循环都可以相互嵌套,自由组合
for(i = 1; i < max1; i++) {
……
for(j = 0; j <= max2; j++) {
……
}
……
}
代码初体验:
public class TestWhile3 {
public static void main(String[] args) throws Exception {
int i=10, j, k;
for (j = 0; j < i ; j++) {
System.out.println();
for (k = 0; k <= j; k++){
System.out.print("*");
}
}
}
}
控制语句return、break 和 continue
- return
跳出方法体
- break
//跳出当前循环。此循环 不再执行
- continue
//跳过当前循环,会 继续执行下次的循环
return语句
通用语法:
return expression;
-
表达式是可选的
-
return 语句用于从函数中返回
-
return 语句可以带有值,该值将返回给调用程序它使执行返回到调用函数的位置
-
一个函数中可以使用多个return语句,但是遇到第一个return语句时返回
break
通用语法:
break;
-
用于在 switch 语句中终止case
-
也可以用于在循环中突然终止循环
-
当循环中遇到 break 语句时,循环立即终止,控制权传递给循环之后的语句
-
多层循环中,break只向外跳一层
代码初体验:
public class TestBreak1 {
public static void main(String[] args) throws Exception {
int count1,count2;
for(count1=1, count2=0; count1<=100; count1++){
System.out.println(count1);
count2++;
if(count2 == 10){
break;
}
}
}
}
continue
通用语法:
continue;
-
continue 语句,只能在循环中使用让封闭循环进行下一次迭代
-
遇到该语句时,跳过循环体中剩余的语句,控制权传递给重新初始化步骤
-
在while循环和do…while循环中,程序控制权传递个条件测试语句
-
在for循环中,continue控制权直接交给增量部分,然后执行条件测试
代码初体验:
public class TestContinue1 {
public static void main(String[] args) throws Exception {
int num;
for(num = 1; num <=20; num++) {
//打印1-100之间不能被9整除的数
if(num % 9 == 0){
continue;
}
System.out.println(num+"\t");
}
}
}
总结
- 选择结构
- If/else语句
- 嵌套的if语句
- swtich语句
- 条件运算符
- 循环结构
- for\while\do…while循环
- 嵌套循环
- 控制语句return、break 和 continue
- 点赞
- 收藏
- 关注作者
评论(0)