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方法中");}
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/202283.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT mysql 数据库线程池 与数据库操作封装

最近事情比较多很久没有写学习笔记了&#xff0c;数据库线程池&#xff0c; 数据库封装&#xff0c;虽说数据库操作有很多不需要写sql 的&#xff0c;ORM 封装的方式去操作数据库。但是从业这些年一直是自己动手写sql &#xff0c;还是改不了这个习惯。不说了直接上代码。 数据…

【C语言】数据结构——栈和队列实例探究

&#x1f497;个人主页&#x1f497; ⭐个人专栏——数据结构学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 导读&#xff1a;一、 栈1. 栈的概念及结构2. 栈的实现3. 实现代码3.1 定义结构体3.2 初始化栈3.3 销毁栈3.4 入栈3.5 出栈…

Rust生态系统:探索常用的库和框架

大家好&#xff01;我是lincyang。 今天我们来探索Rust的生态系统&#xff0c;特别是其中的一些常用库和框架。 Rust生态系统虽然相比于一些更成熟的语言还在成长阶段&#xff0c;但已经有很多强大的工具和库支持各种应用的开发。 常用的Rust库和框架 Serde&#xff1a;一个…

python pymodbus库使用教程(以Modbus RTU为例)

文档&#xff1a; https://pymodbus.readthedocs.io/en/latest/ 源码&#xff1a; https://github.com/riptideio/pymodbus/ 文章目录 Python PyModbus库使用教程&#xff1a;以Modbus RTU为例介绍安装PyModbus配置串行连接导入必要的模块创建Modbus客户端实例 建立连接连接…

CQ 社区版 V2.6.0 发布 | SQL闪回、权限看板、新增数据源人大金仓等

前言 HELLO&#xff0c;大家好&#xff0c;又到了 CloudQuery 社区版发版时间&#xff01;本次更新版本为 v2.6.0&#xff0c;亮点多多&#xff0c;我们直入主题一起来看&#xff01; 一、本期亮点 新增 3 种数据源支持 V2.6.0&#xff0c;新增三种国产数据源支持&#xff…

【广州华锐互动】VR溺水预防教育:在虚拟世界中学会自救!

在现代社会中&#xff0c;水上安全和救援行动的重要性不言而喻。尤其在自然灾害、游泳事故或航海事故中&#xff0c;有效的救援行动可以挽救许多生命。然而&#xff0c;传统的救援训练往往存在成本高、风险大、效率低等问题。在这样的背景下&#xff0c;虚拟现实&#xff08;VR…

为什么要写测试用例,测试用例写给谁看?

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

buildAdmin 后端控制器的代码分析

buildAdmin的代码生成&#xff0c;很像是 fastadmin 的生成模式&#xff0c;当我们利用数据库生成了一个控制器的时候&#xff0c;我们可以看到&#xff0c; 它的生成代码很简洁 <?phpnamespace app\admin\controller\askanswer;use app\common\controller\Backend;/*** 回…

数据中台之用户画像

用户画像应用领域较为广泛,适合于各个产品周期,从新用户的引流到潜在用户的挖掘、 从老用户 的培养到流失用户的回流等。通过挖掘用户兴趣、偏好、人口统计特征,可以 直接 作用于提升营销精准 度、推荐匹配度,最终提升产品服务和企业利润。还包括广告投放、产品布局和行业报…

webshell之无扩展免杀

1.php加密 这里是利用phpjiami网站进行加密&#xff0c;进而达到加密效果 加密前&#xff1a; 查杀效果 可以看到这里D某和某狗都查杀 里用php加密后效果 查杀效果 可以看到这里只有D某会显示加密脚本&#xff0c;而某狗直接绕过 2.dezend加密 可以看到dezend加密的特征还是…

SA实战 ·《SpringCloud Alibaba实战》第14章-服务网关加餐:SpringCloud Gateway核心技术

大家好,我是冰河~~ 一不小心《SpringCloud Alibaba实战》专栏都更新到第14章了,再不上车就跟不上了,小伙伴们快跟上啊! 在《SpringCloud Alibaba实战》专栏前面的文章中,我们实现了用户微服务、商品微服务和订单微服务之间的远程调用,并且实现了服务调用的负载均衡。也基…

联想拯救者Lenovo Legion R9000K 2021H(82N6)原装出厂Windows10/Win11系统ISO镜像

链接&#xff1a;https://pan.baidu.com/s/13NkeCXNdV0Ib5eeRnZUeAQ?pwdnlr7 提取码&#xff1a;nlr7 拯救者笔记本电脑原厂WIN系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具&#xff1a;16G或以上的U盘 文…

第15届蓝桥杯Scratch选拔赛中级(STEMA)真题2023年10月

一、单选题 1.运行以下哪个程序后&#xff0c;巨嘴鸟会向下移动&#xff1f;&#xff08; &#xff09; A. B. C. D. 2.运行以下程序后&#xff0c; 能看到几只河豚鱼&#xff08; &#xff09;&#xff1f; A.3 B.4 C.6 D.7 3.以下运算结果为“False”的是&#xff08…

财报解读:电商GMV增长30%后,快手将坚守本地生活?

快手逐渐讲好了其高质量成长的故事。 根据财报&#xff0c;快手三季度业绩超出预期&#xff0c;其中&#xff0c;营收279.5亿元&#xff0c;同比增长20.8%&#xff1b;调整后净利润31.7亿元&#xff0c;同比扭亏为盈。 而联系市场环境来看&#xff0c;三季度广告、电商市场较…

webpack环境变量的设置

现在虽然vite比较流行&#xff0c;但对于用node写后端来说&#xff0c;webpack倒是成了一个很好的打包工具&#xff0c;可以很好的保护后端的代码。所以这块的学习还是不能停下来&#xff0c;接下来我们来针对不同的环境做不同的设置写好笔记。 引用场景主要是针对服务器的各种…

设计师不能忽视的几个宝藏图标设计工具

在这个快速变化的时代&#xff0c;设计师对创新和实用工具的需求越来越大。这就要求我们及时跟上潮流&#xff0c;不断探索和尝试最新、最有价值的图标设计工具。只有这样&#xff0c;我们才能在竞争激烈的设计市场中脱颖而出。以下是我们精心挑选的2024年值得一试的图标设计工…

MySQL数据库:开源且强大的关系型数据库管理系统

大家好&#xff0c;我是咕噜-凯撒&#xff0c;数据在当今信息化时代的重要性不可忽视。作为企业和组织的重要资产&#xff0c;数据的管理和存储变得至关重要&#xff0c;MySQL作为一种关系型数据库管理系统&#xff0c;具有非常多的优势&#xff0c;下面简单的探讨一下MySQL数据…

labview 安捷伦 34970A 采集温度等

本文详细描述了怎么用安捷伦34970A采集温度&#xff0c;并列出了labview的下载链接&#xff0c;具有一定的参考价值。 1.必要条件&#xff1a; RS-232电缆一根 IO Libraries Suite 软件 BenchLink Data Logger 软件 软件可以在http://www.keysight.com.cn下载 检查RS-232…

Hive安装配置 - 本地模式

文章目录 一、Hive运行模式二、安装配置本地模式Hive&#xff08;一&#xff09;安装配置MySQL1、删除系统自带的MariaDB2、上传MySQL组件到虚拟机3、在主节点上安装MySQL组件4、在主节点上配置MySQL&#xff08;1&#xff09;查看MySQL服务状态&#xff08;2&#xff09;查看M…

笔记本外接显示器的一些基本操作

1>&#xff0c;安装问题直接问客服&#xff0c;正常情况是将显示屏接上电源&#xff0c;然后用先将显示屏和笔记本的HDMI接口连接即可。 按下组合键 win p ,选择 “复制”。 2>&#xff0c;接上显示屏后&#xff0c;原笔记本无声音&#xff1f; 1、找到笔记本电脑右下…