首页 > 编程语言 >Java流程控制

Java流程控制

时间:2022-09-01 14:45:57浏览次数:62  
标签:语句 控制 Java 流程 System break case switch 循环

1. 输出/输入

Java提供的输出包括:System.out.println() [换行]/ print() / printf(),其中printf()可以格式化输出;

格式化输出使用System.out.printf(),通过使用占位符%?printf()可以把后面的参数格式化成指定格式

Java的格式化功能提供了多种占位符,可以把各种数据类型“格式化”成指定的字符串:

占位符说明
%d 格式化输出整数
%x 格式化输出十六进制整数
%f 格式化输出浮点数
%e 格式化输出科学计数法表示的浮点数
%s 格式化字符串

注意,由于%表示占位符,因此,连续两个%%表示一个%字符本身。

public class Main {
    public static void main(String[] args) {
        double d = 3.1415926;
        System.out.printf("%.2f\n", d); // 显示两位小数3.14
        System.out.printf("%.4f\n", d); // 显示4位小数3.1416
    }
}

输出

import语句导入java.util.Scanner,创建Scanner对象并传入System.inSystem.out代表标准输出流,而System.in代表标准输入流。

有了Scanner对象后,要读取用户输入的字符串,使用scanner.nextLine(),要读取用户输入的整数,使用scanner.nextInt()Scanner会自动转换数据类型,因此不必手动转换。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // 创建Scanner对象
        System.out.print("Input your name: "); // 打印提示
        String name = scanner.nextLine(); // 读取一行输入并获取字符串
        System.out.print("Input your age: "); // 打印提示
        int age = scanner.nextInt(); // 读取一行输入并获取整数
        System.out.printf("Hi, %s, you are %d\n", name, age); // 格式化输出
    }
}

 

2.循环结构

  • while 循环
  • do…while 循环
  • for 循环

while循环

while (条件表达式) {
    循环语句
}
// 继续执行后续代码

while循环在每次循环开始前,首先判断条件是否成立。如果计算结果为true,就把循环体内的语句执行一遍,如果计算结果为false,那就直接跳到while循环的末尾,继续往下执行。

do…while 循环 

至少会执行一次

do {
       //代码语句
}while(布尔表达式);

for循环

for (初始条件; 循环检测条件; 循环后更新计数器) {
    // 执行语句
}

关于 for 循环有以下几点说明:

  • 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
  • 然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
  • 执行一次循环后,更新循环控制变量。
  • 再次检测布尔表达式。循环执行上面的过程。

 增强 for 循环(for each循环)

for(声明语句 : 表达式)
{
   //代码句子
}

声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。

表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

for循环相比,for each循环的变量n不再是计数器,而是直接对应到数组的每个元素。for each循环的写法也更简洁。但是,for each循环无法指定遍历顺序,也无法获取数组的索引。

除了数组外,for each循环能够遍历所有“可迭代”的数据类型,包括后面会介绍的ListMap等。

 int[] ns = { 1, 4, 9, 16, 25 };
 for (int n : ns) {
     System.out.println(n);
}

break 关键字

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。

break 跳出最里层的循环,并且继续执行该循环下面的语句。

continue 关键字

continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。

在 for 循环中,continue 语句使程序立即跳转到更新语句。

在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。

 

3.条件语句 

if...else...,else不是必须的。还可以用多个if ... else if ...串联,使用嵌套的 if…else 语句是合法的。

要判断引用类型的变量内容是否相等,必须使用equals()方法

4.switch case 语句

switch(expression){
    case value :
       //语句
       break; //可选
    case value :
       //语句
       break; //可选
    //你可以有任意数量的case语句
    default : //可选
       //语句
}
switch case 语句有如下规则:

switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。

switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。

case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。

当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。

当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。

switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。

switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。
规则
public class Test {
   public static void main(String args[]){
      //char grade = args[0].charAt(0);
      char grade = 'C';
 
      switch(grade)
      {
         case 'A' :
            System.out.println("优秀"); 
            break;
         case 'B' :
         case 'C' :
            System.out.println("良好");
            break;
         case 'D' :
            System.out.println("及格");
            break;
         case 'F' :
            System.out.println("你需要再努力努力");
            break;
         default :
            System.out.println("未知等级");
      }
      System.out.println("你的等级是 " + grade);
   }
}
example

switch语句可以做多重选择,然后执行匹配的case语句后续代码;switch的计算结果必须是整型、字符串或枚举类型;

注意千万不要漏写break,建议打开fall-through警告;总是写上default,建议打开missing default警告;

从Java 14开始,switch语句正式升级为表达式,不再需要break,并且允许使用yield返回值。

 

标签:语句,控制,Java,流程,System,break,case,switch,循环
From: https://www.cnblogs.com/yunlong-study/p/16646442.html

相关文章

  • Java集合体系大杂烩
    Java集合体系主要包括Collection和Map两种,Collection存储着对象的集合,而Map存储着键值对(两个对象)的映射表。   下面贴出Map的继承/实现关系。Collection的子......
  • 记一次feign调用报错:feign.codec.DecodeException: Error while extracting response
    一直以为是被调用法的返回对象类型和调用方接收的对象类型不一致导致的解析失败甚至以为无法传递除Jsondate以外的类型 实际问题:多服务调用导出用到多线程token无法......
  • 后端Web开发框架(Java)
    ⬇️点击“下方链接”,提升测试核心竞争力!>>更多技术文章分享和免费资料领取为什么使用SpringBoot简化配置,无需编写太多的xml配置文件,效率很高;Spring可以整合很多各......
  • Java8实战中文版 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1uuve1acqJl9CdzEPG_JNOg点击这里获取提取码 《Java8实战》Java8的公布使Java编程设计产生了天翻地覆的转变。运用Java......
  • JavaScript高级程序设计(第3版) pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1rWAAzlVrJLfwXEn_SWtBWw点击这里获取提取码JavaScript高级程序设计本书从最早期Netscape浏览器中的JavaScript开始讲起,直到......
  • Java语言基础
    1.Java概述,环境搭建​软件:按照特定顺序组织的计算机数据和指令的集合开发:软件的制作过程软件开发:借助开发⼯具与计算机语⾔制作软件代码:代替编码的符号代替编码......
  • Java环境搭建、eclipse下载、编写第一个Java程序
    Java环境搭建1.下载JDK在学习一门新的语言之前,要把相应的开发环境搭好,JDK(JavadevelopmentKit)就是Java的开发环境。下载地址:https://www.oracle.com/technetwork/java/......
  • java代码审计的点
    java代码审计的点组件的审计首先看pom.xml查看第三方组件和第三方组件的版本常用的第三方组件:第三方组件漏洞类型组件漏洞版本log4j2远程代码执行Apachel......
  • java 同源Cors 解决跨域及填坑总结
    1.为什么会跨域出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影......
  • .Net6 Api 里使用版本控制(Versioning)
    NetCoreApi接口版本管理简单介绍感谢创建ASP.NETCoreWebApi本次操作环境条件创建项目versioning的版本控制的方法第一步,通过Nuget安装包第二步,在Startup.cs里的Con......