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以内的随机数,并保存

目录
相关文章
|
3月前
|
Java
Java的控制流程语句:深入理解条件语句、循环语句与跳转语句
Java的控制流程语句:深入理解条件语句、循环语句与跳转语句
37 1
|
3月前
|
Java 程序员
Java程序设计基础——循环中的跳转语句
Java程序设计基础——循环中的跳转语句
|
3月前
|
Java
Java程序设计基础——while循环语句
Java程序设计基础——while循环语句
|
3月前
|
Java
Java循环语句
Java循环语句
27 0
|
3月前
|
设计模式 算法 Java
【设计模式】JAVA Design Patterns——Acyclic Visitor(非循环访问者模式)
【设计模式】JAVA Design Patterns——Acyclic Visitor(非循环访问者模式)
|
12天前
|
Java
Java 流程控制15道练习题(选择&循环)
Java 流程控制15道练习题(选择&循环)
23 10
|
6天前
|
编译器
Java--for循环语句
Java--for循环语句
|
12天前
|
Java 机器人 开发者
04 Java流程控制-循环(while+for+关键字+嵌套)
04 Java流程控制-循环(while+for+关键字+嵌套)
30 4
|
2天前
|
并行计算 Java API
WXM
|
26天前
|
Java
Java三种循环语句的使用与区别
在Java中,常用的循环语句包括for循环、while循环和do...while循环。for循环适合已知循环次数的情况,其格式为for(初始化; 条件; 更新) { // 循环体 }。while循环则适合条件不确定的情况,先判断条件再执行,格式为while(条件) { // 循环体 }。do...while循环至少执行一次循环体,格式为do { // 循环体 } while(条件);。三者的主要区别在于执行顺序:for和while先判断条件再执行,而do...while先执行再判断。此外,for循环的控制变量在循环外不可用,而while循环的变量可在外部使用。
WXM
30 2