03《JAVA从零到壹》第三讲:条件循环

举报
小虚竹 发表于 2022/10/29 16:55:46 2022/10/29
【摘要】 ❤️作者主页:小虚竹❤️作者简介:大家好,我是小虚竹。Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作者🏆,阿里云专家博主🏆❤️技术活,该赏❤️点赞 👍 收藏 ⭐再看,养成习惯@[toc] 选择结构选择语句又称为分支语句,它通过对给定的条件进行判断,从而决定执行两个或多个分支中的哪一支。示例:为了判断一个数是偶数还是奇数,执行如下操作:java语言支持...

❤️作者主页:小虚竹

❤️作者简介:大家好,我是小虚竹。Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作者🏆,阿里云专家博主🏆

❤️技术活,该赏

❤️点赞 👍 收藏 ⭐再看,养成习惯

@[toc]

选择结构

选择语句又称为分支语句,它通过对给定的条件进行判断,从而决定执行两个或多个分支中的哪一支。

示例:为了判断一个数是偶数还是奇数,执行如下操作:

image-20220213165316150

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);
        }
    }
}

image-20220213170109239

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 ");
        }
    }
}

image-20220213170639977

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 ");  
        }
    }
}

image-20220213171343284

嵌套的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");
        }
    }
}

image-20220213172002204

swtich语句

  • switch 语句是一种多路判定语句,它判断表达式的值是否与整数或字符常量列表中的某个值相匹配

  • 若找到了相应的匹配,就会执行与常量关联的语句

  • 注:不能匹配字符串

  • 通用语法:

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

switch、case、和default都是关键字,语句可以是简单或复合语句。

switch后的表达式需要用圆括号括起来,而且switch语句的主题用{ }括起来

计算表达式的数据类型要与指定的case常量的数据类型匹配。

switch后的表达式可以包含任何变量名,也可以是常量。

case后面只能是常量(整型和字符型)。//menu枚举类型

switch语句执行过程:

image-20220213172248778

代码初体验:

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;
        }
        }
}

image-20220213172535829

在上面的程序中,如果表达式与其中的一个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);
        }
    }
}

image-20220217906218

代码初体验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);
    }
}

image-20220217930657
代码初体验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) ); 
        }
    }

image-20220217957822

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("循环结束 ");
    }
}

image-20220217144512317

和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); 
    }
}

image-20220217936804

三个循环的区别和总结

  • 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("*");
            }
        }
    }
}

image-20220217943447

控制语句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;
            }
        }

    }
}

image-202202179216937

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");
        }
    }
}

image-202202179523122

总结

  • 选择结构
    • If/else语句
    • 嵌套的if语句
    • swtich语句
    • 条件运算符
  • 循环结构
    • for\while\do…while循环
    • 嵌套循环
    • 控制语句return、break 和 continue
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。