程序逻辑控制

1.java的三大结构

可以说java的这三大结构包括其中的语句跟c语言上的基本上都是一样的。现在就当重新复习一遍吧!

1.顺序结构

 2.分支结构

 if语句

跟c语言的语法一模一样。就直接看文案了。

switch语句 

 java中的switch语句跟c语言中的switch几乎相同,但还是有一些区别。

其switch语法结构:

switch(表达式){case 常量值1:{语句1;break;}case 常量值2:{语句2;break;}
...default:{内容都不满足时执行语句;[break;]} 
}

先重点说一下其区别:说完之后再看文案(毕竟也没什么好讲的)

在c语言中switch括号里的只能是整形范围里的数据,字符也可以,因为其本质是整形,除此之外,其他都不行,像浮点型什么的。

到了java这,switch的括号里可以是除long之外的整形,就long不可以,当然字符本质属于整形,当然也可以,还可以包括String常量串 和枚举类型。 除此之外,其他类型像boolean类型,浮点数类型等都不可以包含在里面。

所以switch在java和c语言中的区别就在这里,其他都一样。

3. 循环结构

while循环 

跟c语言的while循环一模一样。 下面就直接给文案。

break 

跟c语言的break语法同理一样,会提前结束其存在的语法结构。(其能提前结束的语法结构有switch结构和循环结构(for ,while ,do while)

continue

continue跟c语言中的也一样,其只能作用于循环语句中(for,while,do while)。下面直接给文案。

for循环 

java的for循环跟c语言的几乎是一模一样。但还是要在这说几个重要的点,再直接给文案。

在Java中for循环第一个语句和最后一个语句可以为空语句,但第二个不能为空语句

而在c语言中三个语句都可以空,这是因为在c语言中第二个空语句可以转换为真(布尔类型),而在Java中不能转换为布尔类型所以不能为空语句。

在java中,它跟c语言一样,for循环的第一个语句同样可以创建变量,并且能创建多个变量,但切记它们这些必须为同一个类型,也就是在第一个语句中只能出现一种数据类型去创建变量,不能出现第二种数据类型去创建变量

对于continue作用后 ,如果是do  while 或者while都是直接开始判定条件,但在for循环中要经历for循环的最后一个语句才能开始判定条件 。所以很特殊(这个在c语言中讲过一遍,再复习一下)

 do while 循环

 do while 在循环中我们几乎用不到,基本都是用while循环  ,for循环。 但还是要了解下它。这里直接给文案吧。之前都学过没什么好说的。

2.输入输出 

 输出

System.out.println(msg);            // 输出一个字符串或单个数据(整形或浮点型), 带换行

System.out.print(msg);              // 输出一个字符串或单个数据(整形或浮点型), 不带换行

对于println和printf,其不仅能输出一个字符串,也能输出单个数据(单个数据如整形只要在括号里面填50,不需要填”50“(字符串类型)也能输出)

例子如下:一个字符串输出,一个单个数据(整形)输出,最终都是50.

System.out.printf(format, msg); // 格式化输出   

printf在java中的作用跟在c语言中几乎差不多,都是格式化输出,基本一样。这里不多说,都知道格式。

int x = 10;
System.out.printf("x = %d\n", x)

 

 格式化中的占位符 :

在c中学过的基础占位符在这都出现了,占位符基本都是一样的 。

这个表格没必要记住, 用到的时候根据需要查一下就行了

在这三个输出函数中,我们用的最多的都是println 函数。

输入

使用 Scanner 读取字符串/整数/浮点数

首先如果要使用Scannner就要在开头用这个包:import java.util.Scanner;  // 需要导入 util 包

而后创建变量Scanner sc = new Scanner(System.in);

从而成功使用我们的变量去输入。如int age = sc.nextInt();

接收不同的数据类型要用不同的next类型。如以下

这里重点说nextLine和next

nextLine是读取一整行。(nextline只有在遇到换行符时会终止读取并把换行符也给读取到里面,开始时就碰到换行符则会只读取换行符)

next是读取一个字符串,在遇到空格就会终止。(一开始如果就碰到换行符或者空格,则直接跳过,直到识别到其他符号,终止则是碰到空格或者换行符则终止,所以并不会像nextLine一样一开始碰到换行符就终止了)

所以比如hello  world  nextLine能读取完,而next就只能读取hello 。

因为上述功能,所以会有一个bug:

我们此时填了40,再按个enter换行键就直接输出了,这是为什么呢。

前面我们提到过,nextLine开始就碰到换行键就会只读取换行符,所以40nextInt读取了,剩下一个换行符,换行符则就被nextLine读取到了并立刻终止,所以就因为这样就直接输出了。

而我们用next就是另一个结果,因为next最开始并不会识别换行符和空格符,识别到其他字符之后才会开始识别换行符和空格符(识别到了就终止了)。

下面这个就是成功现象。

但如果你坚持要用nextLine那也行,不妨设两个nextLine,第一个去抵消,第二个才去识别 。

 使用 Scanner 循环读取 N 个数字,并求取其平均值

 这就是个scanner循环,能不断循环输入。除此之外还有其他类型的循环输入如浮点型,字符串型的循环输入,这里不一一介绍了。

对于终止循环输入按enter键在这是行不通的,像要终止循环输入在idea里是要按ctrl+z的。

注意事项: 当循环输入多个数据的时候, 使用 ctrl + z 来结束输入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl + d). (idea是用ctrl+z去结束循环输入的)

所以在idea中要终止循环输入的话是按ctrl+z键,普通输入的话按enter就能终止了。(普遍适用于任何语言,有时候其他语言中ctrl+z要换成ctrl+d)

 3.猜数字游戏

之前c语言里也学到过猜数字游戏。这里用java版的讲述一下。

import java.util.Random;
import java.util.Scanner;;class Test {public static void main(String[] args) {Random random = new Random(); // 默认随机种子是系统时间Scanner sc = new Scanner(System.in);int toGuess = random.nextInt(100);//0到100不包括100// System.out.println("toGuess: " + toGuess);while (true) {System.out.println("请输入要输入的数字: (1-100)");int num = sc.nextInt();if (num < toGuess) {System.out.println("低了");} else if (num > toGuess) {System.out.println("高了");} else {System.out.println("猜对了");break;}}sc.close();}
}

这里直接讲重点 

在java中 ,直接Random()就是跟据当前时间生成随机数。而在c语言要实现较麻烦,还要用时间戳函数。所以java用起来真的很简单。

而如果你要用种子去生成随机数,也可以用Random(seed 数字(如123))(种子在c语言里学过),在这之后你程序每次启动后的第一次随机数,第二次随机数甚至以后的值都是固定的。 

 所以这就是猜数字游戏具体要讲的细节。

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

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

相关文章

AtCoder Beginner Contest 343 A~F

A.Wrong Answer&#xff08;模拟&#xff09; 题意&#xff1a; 给你两个整数 A A A和 B B B&#xff0c;它们介于 0 0 0和 9 9 9之间。 输出任何一个介于 0 0 0和 9 9 9之间且不等于 A B AB AB的整数。 分析&#xff1a; 按题意判断并输出一个整数即可。 代码&#xff…

[力扣 Hot100]Day39 对称二叉树

题目描述 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 出处 思路 每一对对称的节点AB&#xff0c;A的左儿子和B的右儿子&#xff0c;A的右儿子和B的左儿子又是一对对称节点。 代码 class Solution { public:bool compare(TreeNode* r1, TreeNode* r2){i…

qnx display

05-SA8155 QNX Display框架及代码分析(1)_openwfd-CSDN博客 backlight p: 0 t: 0 00000 SHD -----ONLINE----- 2024/03/06 13:49:22.046 backlight p:1060958 t: 1 00000 ERR backlight_be[backlight_be.c:284]: pthread_create enter 2024/03/06 13…

python基础练习题目

1. 根据身高体重&#xff0c;判断人的胖瘦 描述&#xff1a; 通过身高和体重&#xff0c;判断一个人的胖瘦。国际上一般采用BMI体重指数&#xff0c;计算公式为BMI 体重 / 身高2(保留小数点后1位)&#xff0c;参考标准如下&#xff1a;‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪…

回流和重绘

浏览器是如何进行页面渲染的&#xff1f; 1、解析&#xff08;parser&#xff09;HTML&#xff0c;生成DOM树&#xff1b; 2、同时解析css&#xff0c;生成样式规则&#xff1b; 3、根据DOM树和样式规则&#xff0c;生成渲染树&#xff1b; 4、进行布局Layout&#xff08;回流&…

SpringBoot集成RocketMQ

RocketMQ是一个纯Java、分布式、队列模型的开源消息中间件&#xff0c;前身是MetaQ&#xff0c;是阿里参考Kafka特点研发的一个队列模型的消息中间件&#xff0c;后开源给apache基金会成为了apache的顶级开源项目&#xff0c;具有高性能、高可靠、高实时、分布式特点。 环境搭…

对VisionPro的认识,CogPMAlingTool模板匹配工具练习

什么是VisionPro&#xff1f; 在认识VisionPro之前我们需要先熟悉一下图片的各种格式 这里我们可以参考来自githubcurry博主的文章 图片各种格式的区别以及计算机如何存储图片 VisionPro 是由世界领先的机器视觉公司 Cognex 开发的一款专业机器视觉软件。它提供了强大的图像…

【一】【SQL Server】如何运用SQL Server中查询设计器通关数据库期末查询大题

职工考勤20170320 职工考勤20170320数据库展示 职工考勤表展示 职务代码表展示 一、基本操作 代码方式&#xff1a; --第一大题、基本操作 ALTER TABLE [dbo].[职工考勤表] DROP COLUMN [照片];EXEC sp_rename dbo.职工考勤表.职工编号, 工号, COLUMN;ALTER TABLE 职工考勤表 A…

华为HQoS配置案例

HQoS基于层次化调度&#xff0c;cpe上支持三级队列&#xff1a; level3流队列&#xff1a;每个用户的同类业务是一个业务流&#xff0c;针对每个用户不同的业务流进行队列调度&#xff0c;流队列一般与业务类型对应&#xff08;EF、AF、BE等&#xff09;。 level2用户队列&…

2024年安卓开发者跳槽指南,音视频时代你还不会NDK开发

正式加入字节跳动&#xff0c;分享一点面试小经验 今天正式入职了字节跳动。工号超吉利&#xff0c;尾数是3个6。然后办公环境也很好&#xff0c;这边一栋楼都是办公区域。公司内部配备各种小零食、饮料&#xff0c;还有免费的咖啡。15楼还有健身房。而且公司包三餐来着。下午…

Java对象转JSON的三种方法

Java对象转JSON的三种方法 在Java编程中&#xff0c;我们经常需要将Java对象转换为JSON格式&#xff0c;以便于数据的传输和存储。本文将介绍三种常用的方法来实现Java对象到JSON的转换&#xff0c;分别是使用org.json.JSONObject&#xff0c;Google Gson和Jackson。 一、使用…

UnityAPI的学习——Rigidbody类

Rigidbody类的功能是用来模拟GameObject对象在现实世界中的物体特性&#xff0c;包括重力、阻力、质量、速度等 Rigidbody类实例属性 在Rigidbody类中&#xff0c;涉及的实例属性有collisionDetectionMode、drag、inertiaTensor、mass和velocity。 collisionDetectionMode属…

【YOLO v5 v7 v8 v9小目标改进】新CNN架构 InceptionNeXt:怎么让大卷积核既好用又快

新CNN架构 InceptionNeXt&#xff1a;怎么让大卷积核既好用又快 提出背景问题: 如何提高大核心卷积的效率&#xff0c;同时保持或提升模型性能&#xff1f; 改进思路MetaNeXtInception深度卷积InceptionNeXt 小目标涨点YOLO v5 魔改YOLO v7 魔改YOLO v8 魔改YOLO v9 魔改 提出背…

进程之守护进程

目录 1、Linux进程的类型: 2、守护进程的特点: 3、守护进程的创建步骤 1、Linux进程的类型:</

RUUFFY、由利、希亦内衣洗衣机怎么样?测评对比谁更好?

我们传统的洗衣机其实并不可以用来清洗内衣裤&#xff0c;以及袜子这类小型的衣物&#xff0c;容易出现细菌的交叉感染&#xff0c;而且传统洗衣机单单清洗这些小件衣物并不划算&#xff0c;需要很多的水量&#xff0c;有些全自动的大型洗衣机需要更多的衣物同时清洗才能正常工…

110. 平衡二叉树【简单】

110. 平衡二叉树【简单】 题目描述&#xff1a; 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1 。 示例 1&#xff1a; 输入&#xff1a;r…

利用MiniZinc进行约束建模——以着色问题为例

文章目录 1. 什么是 MiniZinc ?2. 安装方法(Windows)3. 求解着色问题3.1 问题描述3.2 建立 MiniZinc 模型3.3 运行求解1. 什么是 MiniZinc ? 约束满足性问题(Constraint Satisfaction Problem,CSP)判断在有限变量与有限约束条件下,是否存在满足所有约束条件的变量赋值…

chmod+x 命令

将linux上旧的four_diag.sh文件删除&#xff0c;从本地重新上传后&#xff0c;不能执行&#xff0c;需要执行命令&#xff1a; chmod x four_diag.sh 才行 chmod x 的意思就是给执行权限 命令格式&#xff1a; chmod x 文件名 LINUX下不同的文件类型有不同的颜色&#xff1…

IDEA修改git提交者的信息

git提交后&#xff0c;idea会记录下提交人的信息&#xff0c;如果不修改提交人信息的话&#xff0c;会有一个默认值。避免每次提交都要填提交人信息&#xff0c;直接设置成自己想要的默认值&#xff0c;该怎么操作&#xff1f; 提交的时候在这里修改提交人信息 避免每次都去设置…

和鲸科技受邀参与湖南省气象信息中心开展人工智能研究型业务支撑平台学术交流

为推进湖南省机器学习统一平台建设&#xff0c;2 月 29 日&#xff0c;湖南省气象信息中心开展学术讲座活动&#xff0c;活动由中心副主任冯冼主持&#xff0c;中心业务骨干、湖南省气象台、湖南分院等技术人员参加。 本次讲座邀请上海和今信息科技有限公司&#xff08;简称“…