首页 > 其他分享 >顺序、选择、循环

顺序、选择、循环

时间:2023-09-09 11:56:57浏览次数:31  
标签:case break 顺序 System 选择 语句 循环 dayString out

title: 顺序、选择、循环
index_img:  https://tuchuangs.com/imgs/2023/07/22/860e4047323f0b1c.png
tags:
  - Java SE
categories:
  - Java SE
hide: false
excerpt: StringBuilder、常用方法、链式编程

顺序结构

程序按从上到下的顺序执行。

public class Main {
    public static void main(String[] args) {
        System.out.println("我在前面,我先执行!");
        System.out.println("我在中间,我稍后执行!");
        System.out.println("我在最后,我最后执行!");
    }
}

image-20230722231815198

选择结构

if语句

  • 使用boolean判断,直接作为表达式或者使用==
  • {}不要省略,因为有些语句不好判断是几条语句,如int a = 3是声明和赋值两条语句。

格式 1

格式

if (条件表达式) {
 // 满足条件表达式执行这里的语句
}

案例

public class Main {
    public static void main(String[] args) {
        int a = 10;
        int b = 1;
        if (a > b) {
            System.out.println(a + ">" + b); //10>1
        }
        if (a < b) {
            System.out.println(a + "<" + b); //不会执行
        }
        System.out.println("下一条语句"); // 下一条语句
    }
}

格式 2

规则

if (条件表达式) {
 // 满足条件表达式执行这里的语句
}
else{
  // 不满足条件表达式执行这里的语句
}

案例

public class Main {
    public static void main(String[] args) {
        int a = 10;
        int b = 1;
        if (a > b) {
            System.out.println(a + ">" + b); //10>1
        } else {
            System.out.println(a + "<" + b); // 不执行
        }
        System.out.println("下一条语句"); // 下一条语句
    }
}

格式 3

规则

if (条件表达式1) {
 // 满足条件表达式1执行这里的语句
}
else if(条件表达式2){
 // 满足条件表达式2执行这里的语句
}
else if(条件表达式3){
 // 满足条件表达式3执行这里的语句
}
......
else{
  // 不满足条件表达式执行这里的语句
}

案例

public class Main {
    public static void main(String[] args) {
        int price = 1000;
        Scanner sc = new Scanner(System.in);
        int len = sc.nextInt(); //输入5
        if (len == 9) {
            double value = price * len * 0.1 / 100;
            System.out.println("商品打" + len + "折," + "最终价格" + value);
        } else if (len == 5) {
            double value = price * len * 0.1 / 100;
            System.out.println("商品打" + len + "折," + "最终价格" + value); //商品打5折,最终价格5.0
        } else if (len == 1) {
            double value = price * len * 0.1 / 100;
            System.out.println("商品打" + len + "折," + "最终价格" + value);
        } else {
            System.out.println("原价" + price + "出售");
        }
    }
}

嵌套

public class Main {
    public static void main(String[] args) {
        int price = 1000;
        Scanner sc = new Scanner(System.in);
        int len = 5;
        if (0 < len & len < 10) {
            System.out.println("数据正常!");  // 数据正常
            if (len == 9) {
                double value = price * len * 0.1 / 100;
                System.out.println("商品打" + len + "折," + "最终价格" + value);
            } else if (len == 5) {
                double value = price * len * 0.1 / 100;
                System.out.println("商品打" + len + "折," + "最终价格" + value); //商品打5折,最终价格5.0
            } else if (len == 1) {
                double value = price * len * 0.1 / 100;
                System.out.println("商品打" + len + "折," + "最终价格" + value);
            } else {
                System.out.println("原价" + price + "出售");
            }
        } else {
            System.out.println("数据异常!");
        }
    }
}

switch语句

  • 表达式(即要匹配的值):支持byteshortcharint枚举(jdk5 之后)、String(jdk7 之后)
  • case 后的值(只能是字面量,不能是常量,不许重复)与表达式进行匹配
  • break标识中断,结束switch语句,没有break则会带来穿透效果(即使匹配了也继续执行,直到遇到 break 或者语句结束)
  • default,特殊的 case,相当于 else

格式 1

语法

switch(表达式){
    case 值1:
      //语句
      break;
    case 值2:
      //语句
      break;
    ...
     default:
    	//语句
      break;
}

案例

public class Main {
    public static void main(String[] args) {
        int day = 4;
        String dayString;
        switch (day) {
            case 1:
                dayString = "Monday";
                break;
            case 2:
                dayString = "Tuesday";
                break;
            case 3:
                dayString = "Wednesday";
                break;
            case 4:
                dayString = "Thursday"; // Thursday
                break;
            case 5:
                dayString = "Friday";
                break;
            case 6:
                dayString = "Saturday";
                break;
            case 7:
                dayString = "Sunday";
                break;
            default:
                dayString = "Invalid day";
                break;
        }
        System.out.println(dayString);
    }
}
public class Main {
    public static void main(String[] args) {
        int day = 4;
        String dayString;
        switch (day) {
            case 1:
                dayString = "Monday";
                break;
            case 2:
                dayString = "Tuesday";
                break;
            case 3:
                dayString = "Wednesday";
                break;
            case 4:
                dayString = "Thursday"; // dayString = "Thursday"
//                break;
            case 5:
                dayString = "Friday"; // 由于穿透, dayString = "Friday"
//                break;
            case 6:
                dayString = "Saturday"; // 继续穿透, dayString = "Saturday"
                break;
            case 7:
                dayString = "Sunday";
                break;
            default:
                dayString = "Invalid day";
                break;
        }
        System.out.println(dayString);
    }
}

格式 2

jdk12 以后支持,不需要break,避免了遗忘 break 带来的穿透问题。{}单条语句时可省略。

switch(表达式){
    case 值1->{
    	//语句
    }
    case 值2->{
    // 语句
    }
    ...
     default->{
     	//语句
     }
     break;
}
public class Main {
    public static void main(String[] args) {
        int day = 4;
        String dayString;
        switch (day) {
            case 1 -> dayString = "Monday";
            case 2 -> dayString = "Tuesday";
            case 3 -> dayString = "Wednesday";
            case 4 -> dayString = "Thursday"; //Thursday
            case 5 -> dayString = "Friday";
            case 6 -> dayString = "Saturday";
            case 7 -> dayString = "Sunday";
            default -> dayString = "Invalid day";
        }
        System.out.println(dayString);
    }
}

if or switch

if

  • 适合范围判断
  • 支持各种类型

switch

  • 适合多个数据选其一
  • 支持较少类型

循环结构

  • 初始语句只会执行 1 次

  • 条件判断语句每次循环前都会执行

  • 条件控制语句在每次循环结束后才执行。

for 循环

语法

for(初始语句;条件判断;条件控制){
  //满足条件执行的语句
}

案例

public class Main {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            System.out.print(i + " "); //0 1 2 3 4 5 6 7 8 9
        }
    }
}

foreach循环

即增强for循环。

for (元素类型 元素变量 : 集合或数组) {
    // 循环体
}

示例代码:

public class Main {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};
        for (int num : numbers) {
            System.out.print(num + " "); //  1 2 3 4
        }
    }
}

forEach

可以在集合类(如List、Set)或Map上使用。

collection.stream()
          .filter(predicate)
          .map(mapper)
          .forEach(action);

示例代码:

ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");

fruits.stream()
      .filter(fruit -> fruit.startsWith("A"))
      .forEach(System.out::println);

while 循环

语法

初始化语句;
while(条件判断){
  //满足条件执行的语句
  //条件控制语句
}

案例

public class Main {
    public static void main(String[] args) {
        int i = 0;
        while (i < 10) {
            System.out.print(i + " ");//0 1 2 3 4 5 6 7 8 9
        }
    }
}

标签:case,break,顺序,System,选择,语句,循环,dayString,out
From: https://www.cnblogs.com/SimpleWord/p/17689192.html

相关文章

  • 合并顺序表
    例2.3有两个顺序表LA和LB,其元素均为非递减有序排列,编写算法,将它们合并成一个顺序表LC,要求LC也是非递减有序排列。例如,LA=(2,2,3),LB=(1,3,3,4),则LC=(1,2,2,3,3,3,4)。【算法思想】设表LC是一个空表,为使LC也是非递减有序排列,可设两个指针i、j分别指向表LA和LB中的元素,若LA.el......
  • tensorflow选择cpu/gpu训练
    http://www.taodudu.cc/news/show-3980798.html?action=onClick通过环境变量控制屏蔽GPUexportCUDA_VISIBLE_DEVICES=""通过训练代码控制https://blog.csdn.net/dream_to_dream/article/details/122249872选择CPU:importosos.environ["CUDA_DEVICE_ORDER"]="......
  • 并行编程(二)Julia中的顺序和异步编程
    概述这节课的主要目标是开始使用Julia编程,实现并行算法,本次课程中,特别关注语言的部分(函数式和异步编程)。 学习目标运行Julia代码安装Julia软件包编写连续的Julia代码使用Julia的函数式编程功能使用Julia的异步编程功能 WhyJulia?与高性能计算相关的课程通常使用C、C......
  • 恒创科技:国内访问香港服务器选择什么路线?
    ​国内访问中国香港服务器可以选择多种路线。首先,我们了解下各个线路的速度延迟。一、CN2直连:解决了不同互联网服务提供商之间访问的难题,不需要绕到国际网络再从中国的三个网络入口进入。二、优化直连:全国平均延迟60ms,速度较快。三、国际线路:全国平均延迟180ms......
  • hashMap产生的循环依赖问题
    转:hashMap产生的循环依赖问题 这样就是一个很经典hashMap线程不安全导致的循环依赖,因为是个循环链表,就会导致数组一直重复扩容,导致集合的一个无限大,但是JDK1.8的时候,把头插法改成了尾插法,同时引进了红黑树,当连续扩容32次的时候会转换成红黑树,解决这个循环依赖的问题,但是还是......
  • 【技巧分享】如何获取子窗体选择了多少记录数?一招搞定!
    Hi,大家好久不见。我这个更新速度是不是太慢了呀,因为,最近又又又在忙,请大家谅解啦。现在更新文章、视频都要花好久去考虑,好不容易有个灵感了,一搜索,结果发现之前都已经分享过了(委屈脸)。那今天,给大家分享一个子窗体相应的示例。我们来看操作吧。01、创建窗体还是一样,我们先来创建几......
  • 循环冗余校验(CRC)算法入门引导
    写给嵌入式程序员的循环冗余校验(CRC)算法入门引导前言CRC校验(循环冗余校验)是数据通讯中最常采用的校验方式。在嵌入式软件开发中,经常要用到CRC算法对各种数据进行校验。因此,掌握基本的CRC算法应是嵌入式程序员的基本技能。可是,我认识的嵌入式程序员中能真正掌握CRC算法的人却很少,......
  • linux中实现去重复且保持原来的顺序
     001、去重复保持原来的顺序[root@pc1test01]#lsa.txt[root@pc1test01]#cata.txt##测试数据125533774[root@pc1test01]#awk'ay[$0]++'a.txt##输出重复项,且保持原来的顺序537[root@pc1test01]#awk'!ay[$0]++'a.txt##去除......
  • Qt图形视图框架事件传递顺序
     全文链接:http://www.fearlazy.com/index.php/post/111.html Qt为我们提供的图形视图框架真的是非常好用,它通过分解出视图、场景和图元降低了我们绘制图形的难度。它提供了强大图元控制能力,如快速查找图元、检测图元位置、检测图元碰撞等。除此以外图形视图框架还有一个很强大......
  • 寻找理想的退休天堂:我对美国人选择海外退休地的见解和分析
    在我多年的研究与探索过程中,我不断寻找答案:为什么越来越多的美国人选择在海外度过他们的退休时光?我将带您深入探讨这一现象,让我们一起破解其中的奥秘。1.寻找专家意见在开始这一探索之旅前,我首先寻找了该领域的知名专家。RichardFlorida和WilliamH.Frey是人口迁移研究领......