Java基础(程序控制结构篇)

2023-11-23 05:20

本文主要是介绍Java基础(程序控制结构篇),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Java的程序控制结构与C语言一致,分为顺序结构、选择结构(分支结构)和循环结构三种。

一、顺序结构

如果程序不包含选择结构或是循环结构,那么程序中的语句就是顺序的逐条执行,这就是顺序结构。

import java.util.Scanner;
public class SequenceConstruct{public static void main(String[] args){//以下就使程序的顺序结构//语句是从上到下逐个执行的,没有跳转int a = 10;char b = 'a';double c = 1.23;String str = "";Scanner scanner = new Scanner(System.in);System.out.print("请输入一句话:");str = scanner.next();System.out.println(str);}}

二、选择结构

1. if-else

在if-else分支结构中,else会与上方最近的if匹配。

1.1 单分支

在这里插入图片描述

//单分支
import java.util.Scanner;
public class SelectConstruct01{public static void main(String[] args){String str = "";System.out.println("请输入一个名字:");Scanner scanner = new Scanner(System.in);str = scanner.next();if("jack".equals(str))System.out.println("你输入的名字是jack");}}

在这里插入图片描述

1.2 双分支

import java.util.Scanner;public class SelectConstruct02{public static void main(String[] args){//双分支//System.out.print("请输入你的名字:");Scanner scanner = new Scanner(System.in);String name = scanner.next();if("jack".equals(name))System.out.println("你的名字是jack");elseSystem.out.println("你的名字不是jack");}}

在这里插入图片描述

1.3 多分支

在这里插入图片描述

import java.util.Scanner;public class SelectConstruct03{public static void main(String[] args){//多分支//输入保国同志的芝麻信用分:// 如果:// 1) 信用分为 100 分时,输出 信用极好;// 2) 信用分为(80,99]时,输出 信用优秀;// 韩顺平循序渐进学 Java 零基础// 第 100页// 3) 信用分为[60,80]时,输出 信用一般;// 4) 其它情况 ,输出 信用 不及格// 5) 请从键盘输入保国的芝麻信用分,并加以判断Scanner scanner = new Scanner(System.in);System.out.println("请输入信用分:");int score = scanner.nextInt();if(score > 100 || score < 0)System.out.println("信用分输入有误!");else if(score == 100)System.out.println("信用极好");else if(score > 80)System.out.println("信用优秀");else if(score >= 60)System.out.println("信用一般");elseSystem.out.println("信用不及格");}}

在这里插入图片描述

1.4 嵌套分支

在这里插入图片描述

import java.util.Scanner;public class SelectConstruct04{public static void main(String[] args){//嵌套分支//在一个分支结构中嵌套了另一个分支结构//参加歌手比赛,如果初赛成绩大于 8.0 进入决赛,否则提示淘汰。//并且根据性别提示进入男子组或女子组。Scanner scanner = new Scanner(System.in);System.out.print("请输入初赛成绩:");double score = scanner.nextDouble();System.out.print("请输入性别:");char sex = scanner.next().charAt(0);if(score > 8.0)if(sex == '男')System.out.println("进入男子组");else if(sex == '女')System.out.println("进入女子组");elseSystem.out.println("性别输入有误");elseSystem.out.println("淘汰");}}

在这里插入图片描述

2. switch

  • switch括号中的表达式结果类型必须是(byte,short,int,char,enum,String)中的一种。
  • case后的常量类型必须与switch括号中表达式结果的类型一致,或是可以自动转换(switch括号中的类型转换成case关键字后的类型)成可以比较的类型。
  • case后必须是常量,不能是变量。
  • default是可选的。
  • break用于跳出当前switch语句块,如果没有break关键字,那么就会发生穿透,语句会一直执行到switch语句块的末尾或是遇到break。
    在这里插入图片描述
import java.util.Scanner;
public class SwitchStructrue{public static void main(String[] args){Scanner scanner = new Scanner(System.in);boolean flag = true;while(flag){System.out.println("输入1表示退出循环:");if(scanner.nextInt() == 1){flag = false;continue;}System.out.print("输入一个字符(a-g):");char input = scanner.next().charAt(0);switch(input){case 'a':System.out.println("Monday");break;case 'b':System.out.println("Tuesday");break;case 'c':System.out.println("Wensday");break;case 'd':System.out.println("Thursday");break;case 'e':System.out.println("Friday");break;case 'f':System.out.println("Saturday");break;case 'g':System.out.println("Sunday");break;default:System.out.println("error,please input again");}	}	}
}

在这里插入图片描述

3. switch与if-else的比较

  • 如果判断的数值不多,并且是固定不变的,例如星期、月份等内容,推荐使用switch。
  • 对区间的判断,结果为boolean类型的判断等,使用if-else。

三、循环结构

1. for循环

for循环的结构:for(循环变量初始化;循环条件;循环变量迭代){循环体}.可以一次性初始化多个变量(用逗号隔开),但是它们的类型要一致,循环变量的迭代处也可以有多条语句(用逗号隔开)。
在这里插入图片描述

public class ForStructrue{public static void main(String[] args){for(int i = 1; i <= 9; i++){for(int j = 1; j <= i; j++){String str = j + "*" + i + " = " +  i * j;System.out.print(str + "  ");}System.out.println();}}
}

在这里插入图片描述

2. while循环

while循环的结构:while(循环条件){循环体}.
在这里插入图片描述

public class WhileStructrue{public static void main(String[] rags){int i = 1, j = 1;while(i <= 9){j = 1;while(j <= i){System.out.print(j+"*"+i+"="+i*j+"  ");j++;}System.out.println();i++;}}
}

在这里插入图片描述

3. dowhile循环

dowhile循环与while循环基本一样,除了当初始条件不满足时,dowhile会执行一次,而while一次都不会执行。注意while括号后有分号。
在这里插入图片描述

public class DoWhileStructrue{public static void main(String[] args){boolean flag = false;while(flag){System.out.println("This is while");}do{System.out.println("This is dowhile");}while(flag);}
}

在这里插入图片描述

4. 多重循环

多重循环就是一层循环为另一个循环的循环体,打印乘法表就需要使用多重循环来完成,下面使用多重循环打印金字塔。

import java.util.Scanner;
public class MulCirculation{public static void main(String[] args){System.out.println("输入要打印的金字塔规模:");Scanner scanner = new Scanner(System.in);int num = scanner.nextInt();for(int i = 1; i <= num; i++){int j = 0;while(j < num - i){System.out.print(" ");j++;}for(j = 0; j < 2 * i - 1; j++){System.out.print("*");}System.out.println();}}
}

在这里插入图片描述

5. break关键字

用于跳出当前层循环语句或跳出switch语句块。可以使用标签来指定跳出哪一层循环(尽量不要使用标签)。

public class BreakTest{public static void main(String[] args){for(int i = 1; i <= 100; i++){if(i == 49) break;System.out.print(i + " ");}System.out.println();for(int i = 1; i <= 5; i++){for(int j = 1; j <= 5; j++){if(j == i) break;System.out.print(i*j+" ");}System.out.println();}circulation1:for(int i = 1; i <= 10; i++){circulation2:for(int j = 1; j <= 3; j++){circulation3:for(int k = 1; k <= 3; k++){if(i == 1){break circulation2;}System.out.println("i = " + i + " j = " + j + " k = " + k);if(i == 3) break circulation1;}}}}
}

在这里插入图片描述

6. continue关键字

用于跳过本次迭代时continue关键字之后的所有语句,并进行下一次迭代,但不会跳过for循环中循环变量的迭代语句。可以使用标签指定层次。

public class ContinueTest{public static void main(String[] args){for(int i = 1; i <= 3; i++){for(int j = 1; j <= 3; j++){if(i == j) continue;System.out.print("i = " + i + " j = " + j + "  ");}System.out.println();}circulation1:for(int i = 1; i <= 3; i++){circulation2:for(int j = 1; j <= 3; j++){circulation3:for(int k = 1; k <= 3; k++){if(i == 2) continue circulation1;if(j == 1) continue circulation2;System.out.print("i = " + i + " j = " + j + " k = " + k + "  ");}System.out.println();}}}
}

在这里插入图片描述

7. return关键字

return关键字用于跳出所在方法。

public class ReturnTest{public static void main(String[] args){int i = 1;while(i <= 10){if(i == 6) return;System.out.println("i = " + i++);}System.out.println("在main方法中");}
}

在这里插入图片描述

这篇关于Java基础(程序控制结构篇)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/415635

相关文章

springboot健康检查监控全过程

《springboot健康检查监控全过程》文章介绍了SpringBoot如何使用Actuator和Micrometer进行健康检查和监控,通过配置和自定义健康指示器,开发者可以实时监控应用组件的状态,... 目录1. 引言重要性2. 配置Spring Boot ActuatorSpring Boot Act

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

java如何分布式锁实现和选型

《java如何分布式锁实现和选型》文章介绍了分布式锁的重要性以及在分布式系统中常见的问题和需求,它详细阐述了如何使用分布式锁来确保数据的一致性和系统的高可用性,文章还提供了基于数据库、Redis和Zo... 目录引言:分布式锁的重要性与分布式系统中的常见问题和需求分布式锁的重要性分布式系统中常见的问题和需求

SpringBoot基于MyBatis-Plus实现Lambda Query查询的示例代码

《SpringBoot基于MyBatis-Plus实现LambdaQuery查询的示例代码》MyBatis-Plus是MyBatis的增强工具,简化了数据库操作,并提高了开发效率,它提供了多种查询方... 目录引言基础环境配置依赖配置(Maven)application.yml 配置表结构设计demo_st

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python