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

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis