Java选择与循环

简介: Java选择与循环

1.选择

   前言:什么是选择呢?在我们的人生中处处面临着选择,比如说在学校你可以选择玩,摆烂,当然也可以选择努力写代码,刷题。什么样的选择就会面临什么样的结果。

  其实程序和人生一样:顺序中夹杂着循环,伴随一次次选择不断成长

2.分支结构

1.语法格式1

if(布尔表达式){
// 语句
}

如果布尔表达式结构为true,执行if中的语句,否则不执行。

注意:

括号中一定要为布尔表达式,否则程序会报错,不能像c语言中的那种写法if(!a)。

比如:小明,如果这次考试考到90分或以上,给你奖励一个鸡腿。

 

int score = 92;
if(score >= 90){
    System.out.println("吃个大鸡腿!!!");
}

2.语法格式2

if(布尔表达式){
    // 语句1
}else{
    // 语句2
}

如果布尔表达式结果为true,则执行if中语句,否则执行else中语句。

比如:小明,如果这次考到90分以上,给你奖励一个大鸡腿,否则奖你一个大嘴巴子。

 

int score = 92;
if(score >= 90){
    System.out.println("吃个大鸡腿!!!");
}else{
    System.out.println("挨大嘴巴子!!!");
}

3.语法格式3

if(布尔表达式1){
    // 语句1
}else if(布尔表达式2){
    // 语句2
}else{
    // 语句3
}

表达式1成立,执行语句1,否则表达式2成立,执行语句2,否则执行语句3

这是多分支,第一个是单分支

3.switch语句

基本语法

switch(表达式){

case 常量值1:{

语句1;

[break;]

}

case 常量值2:{

语句2;

[break;]

}

default:{

内容都不满足时执行语句;

[break;]

}

}

执行流程:

1. 先计算表达式的值

2. 和case依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时结束

3. 当表达式的值没有与所列项匹配时,执行default

注意事项:

多个case后的常量值不可以重复

switch的括号内只能是以下类型的表达式:

基本类型:byte、char、short、int

引用类型:String常量串、枚举类型

 

其实java里面的switch的功能是非常强大的,它可以识别字符串

注意:

不能作为switch参数的数据类型有:float,double,boolean,long

switch与if的区别

看着switch和 if 好像没有都一样,他们肯定是有区别的。

最本质的区别就是,switch的参数不能是一个很复杂的表达式,像这样

他肯定是会报错的,switch语句做不到。

分号问题

这个代码是一定会打印“hehe”的。

因为:此处多写了一个 分号, 导致分号成为了 if 语句的语句体, 而 { } 中的代码已经成为了和一个 if 无关的代码块。

4.循环结构

while循环

基本语法格式:

while(循环条件){
    循环语句;
}

循环条件为true,则执行循环语句;否则结束循环

java的while语句百分之九十九和c语言一样,百分之一不一样,就是括号里面必须为布尔表达式

一些小练习

要求打印一到十的数字

public static void main(String[] args) {
        int i = 1;
        while(i<=10){
            System.out.print(i+" ");
            i++;
        }
 }

计算 1 到 100 的和

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

计算5的阶乘

public static void main(String[] args) {
        int i = 1;
        int sum = 1;
        while (i<=5){
            sum*=i;
            i++;
        }
        System.out.println(sum);
}

【注意事项】:

1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }

2. 和 if 类似, while 后面的 { 建议和 while 写在同一行.

3. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行

 

给大家带来一个失败的案例

原因:此时 ; 为 while 的语句体(这是一个空语句), 实际的 { } 部分和循环无关. 此时循环条件 num <= 10 恒成立, 导致代码死循环了。

for循环

【基本语法】

for(表达式①;布尔表达式②;表达式③){

       表达式④;

}

  • 表达式1:初始化值,在循环最开始的时候执行,而且只能执行一次。
  • 表达式2:判断条件,如果满足条件就执行循环,不满足循环就结束循环。
  • 表达式3: 循环条件的更新方式

【执行过程】

【循环的使用方法】

打印1到10的数字

public static void main(String[] args) {
     for (int i = 1; i <= 10 ; i++) {
         System.out.print(i+" ");
     }
}

计算1到100的和

public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 100 ; i++) {
            sum+=i;
        }
        System.out.println(sum);
}

运行结果5050

【注意事项】(和while循环类似)

1. 和 if 类似, for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }

2. 和 if 类似, for 后面的 { 建议和 while 写在同一行.

3. 和 if 类似, for 后面不要多写 分号, 否则可能导致循环不能正确执行.

4. 和while循环一样,结束单趟循环用continue,结束整个循环用break

 

给大家带来一个有趣的猜数字小游戏

public static void main(String[] args) {
            Random random = new Random(); // 默认随机种子是系统时间
            Scanner sc = new Scanner(System.in);
            int toGuess = random.nextInt(100);
            while (true) {  //如果没有猜对就会一直去循环
                System.out.println("请输入要输入的数字: (1-100)");
                int num = sc.nextInt();
                if (num < toGuess) {
                    System.out.println("低了");
                } else if (num > toGuess) {
                    System.out.println("高了");
                } else {
                    System.out.println("猜对了");
                    break;  //猜对了就结束循环
                }
            } sc.close();
       }

解析:这个程序的核心代码就是生成一个随机数,那么他是怎么实现的呢?

        Scanner sc = new Scanner(System.in);  //实例化一个随机数

        int toGuess = random.nextInt(100);        //生成一个100以内的随机数,并保存

目录
相关文章
|
7天前
|
Java
Java快速入门之判断与循环
本文介绍了编程中的流程控制语句,主要包括顺序结构、判断结构(if语句和switch语句)以及循环结构(for、while和do...while)。通过这些语句可以精确控制程序的执行流程。if语句有三种格式,分别用于简单条件判断、二选一判断和多条件判断。switch语句适用于有限个离散值的选择判断,而循环结构则用于重复执行某段代码,其中for循环适合已知次数的情况,while循环适合未知次数但有明确结束条件的情况,do...while则是先执行后判断。文中还提供了多个示例和练习,帮助读者理解并掌握这些重要的编程概念。
|
2月前
|
Java 程序员 API
Java循环操作哪个快?
本文探讨了Java中stream API与传统for循环在性能上的对比,通过多个示例分析了不同场景下两者的优劣。作者指出,尽管stream API使代码更简洁,但不当使用会降低可读性和性能,特别是在处理大数据量时。实验结果显示,在多数情况下,普通for循环的性能优于stream API,尤其是在单次操作耗时较短但需多次执行的场景中。文章建议开发者在设计初期就考虑全局流程,避免重复使用stream流,以提升代码质量和性能。
Java循环操作哪个快?
|
2月前
|
Java 程序员 API
Java循环操作哪个快?
本文探讨了Java中Stream API与传统for循环的性能对比及适用场景。作者通过实际案例分析,指出在某些情况下,过度使用Stream API会导致代码可读性和维护性下降。测试结果显示,在数据量较小的情况下,普通for循环的性能优于Stream API,尤其是在涉及多次类似操作时。因此,建议在开发中根据具体需求选择合适的遍历方式,以提高代码的可读性和性能。
Java循环操作哪个快?
|
5月前
|
存储 Java
|
3月前
|
算法 Java 测试技术
🧑‍💻Java零基础:Java 的循环退出语句 break
【10月更文挑战第16天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
80 6
|
8月前
|
Java
Java的控制流程语句:深入理解条件语句、循环语句与跳转语句
Java的控制流程语句:深入理解条件语句、循环语句与跳转语句
82 1
|
4月前
|
Java
java基础(2)循环语句for、while、do...while
本文介绍了Java中的基础循环语句,包括for循环、while循环和do...while循环。文章通过示例代码展示了for循环的基本结构和用法,while循环的先判断后执行逻辑,以及do...while循环的先执行后判断逻辑。这些循环语句在Java编程中非常常用,用于执行重复的任务。
66 4
java基础(2)循环语句for、while、do...while
|
3月前
|
Java 测试技术 数据安全/隐私保护
📖Java零基础-while循环语句的深度解析
【10月更文挑战第6天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
64 1
|
3月前
|
传感器 Java 测试技术
📖Java零基础-do-while循环语句的深入剖析
【10月更文挑战第5天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
50 1
|
4月前
|
Java
Java循环
Java循环
49 6