程序逻辑控制

news2024/10/23 16:14:53

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.coloradmin.cn/o/1498236.html

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

相关文章

试用Claude3

1 简介 好消息是&#xff0c;2024 年 3 月 4 日发布了 Claude3&#xff0c;据传比 GPT-4 更好&#xff0c;snooet 版本可以免费试用&#xff0c;坏消息是我们这儿不能用。 在官网注册时&#xff0c;需要选择国家并使用手机接收短信验证码。而在选项中没有中国这个选项。即使成…

腾讯云学生服务器多少钱?怎么申请?

2024年腾讯云学生服务器优惠活动「云校园」&#xff0c;学生服务器优惠价格&#xff1a;轻量应用服务器2核2G学生价30元3个月、58元6个月、112元一年&#xff0c;轻量应用服务器4核8G配置191.1元3个月、352.8元6个月、646.8元一年&#xff0c;CVM云服务器2核4G配置842.4元一年&…

一周学会Django5 Python Web开发-Django5新增视图CreateView

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计29条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

12.WEB渗透测试-Linux系统管理、安全加固(下)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;11.WEB渗透测试-Linux系统管理、安全加固&#xff08;上&#xff09;-CSDN博客 Linux任务…

Numpy 数组转换为 Pandas DataFrame

参考&#xff1a;Convert Numpy Array to Pandas DataFrame Numpy 介绍 Numpy是Python中一个非常强大的科学计算库&#xff0c;它提供了许多高效的数组操作方法。Pandas是另一个重要的数据处理库&#xff0c;它基于Numpy&#xff0c;并提供了更高级别的数据分析和处理工具。在…

横琴正式封关运行,惟客数据都做了什么?

​作为中国实施高水平制度型开放的重大探索&#xff0c;位于珠海横琴岛的横琴粤澳深度合作区于2024年3月1日零时正式实施分线管理封关运行&#xff0c;共设1个“一线”口岸、7个“二线”海关作业现场&#xff0c;覆盖旅检、货运、通关、稽&#xff08;核&#xff09;查等多线条…

护眼台灯推荐,护眼台灯怎么选?口碑公认的5个品牌推荐

现在儿童青少年的近视率越来越高&#xff0c;所以儿童护眼台灯也是受到了越来越多的关注。护眼台灯凭借能提供舒适自然的照明&#xff0c;起到预防近视的作用&#xff0c;成为了许多家长为孩子选择的必备灯具&#xff01;不过市场上始终存在护眼台灯质量差、不达到标准等各种负…

分段线性化问题探析

目录 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 4 matlab测试结果说明 5 分段线性化应用 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 clc;clear all; gn10;tn1; x_pfsdpvar(1, t…

前端技术研究越深入,越觉得技术不是决定录用唯一条件。

一、拒绝抬杠 我说技能不是唯一条件&#xff0c;不是说技能不重要&#xff0c;招聘前端条件是1X,其中1是技能&#xff0c;X是其他条件。 如果X条件很优秀&#xff0c;1这个条件可以降格为0.8、0.5&#xff0c;甚至更低。 有人就抬杠&#xff0c;那为啥不招聘清洁工来干前端&…

如何学习I2C协议

文章目录 学习I2C协议0 懒人直达1 了解协议开发者2 从恩智浦半导体公司下载官方技术文档3 翻译成中文4 资源下载 学习I2C协议 0 懒人直达 点击直达 1 了解协议开发者 I2C&#xff08;Inter-Integrated Circuit&#xff09;协议是由荷兰皇家飞利浦电子公司&#xff08;现恩智…

【数据结构】哈希

在一个数据序列中查找某一个数据元素&#xff0c;是数据管理时经常涉及的&#xff0c;通常以比较的方式来完成&#xff0c;典型的案例有无序序列的暴力查找&#xff08;O(N)&#xff09;、有序序列的二分查找&#xff08;O(logN)&#xff09;、平衡搜索树&#xff08;O(logN)&a…

如何在小程序中绑定身份证

在小程序中绑定身份证信息是一项常见的需求&#xff0c;特别是在需要进行实名认证或者身份验证的场景下。通过绑定身份证信息&#xff0c;可以提高用户身份的真实性和安全性&#xff0c;同时也为小程序提供了更多的个性化服务和功能。下面就介绍一下怎么在小程序中绑定居民身份…

记一次Flink任务无限期INITIALIZING排查过程

1.前言 环境&#xff1a;Flink-1.16.1&#xff0c;部署模式&#xff1a;Flink On YARN&#xff0c;现象&#xff1a;Flink程序能正常提交到 YARN&#xff0c;Job状态是 RUNNING&#xff0c;而 Task状态一直处于 INITIALIZING&#xff0c;如下图&#xff1a; 通过界面可以看到…

pycuda安装失败问题

pycuda安装失败问题 遇到一个pycuda安装失败的问题&#xff0c; 这里有一个合理的解释可以去尝试一下&#xff0c;看起来很有道理&#xff1a;

第三百八十八回

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了DateRangePickerDialog Widget相关的内容,本章回中将介绍Radio Widget.闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 我们在这里说的Radio Widget是指单选按钮&#xff0c;没有选中时是圆形边框&#x…

chatgpt与人类有何不同?

ChatGPT和人类之间存在多个显著的差异。 首先&#xff0c;ChatGPT是一种基于人工智能技术的计算机程序&#xff0c;通过机器学习和自然语言处理等技术&#xff0c;从大量的数据中获取知识并生成语言输出。它主要依赖于算法和数据进行工作&#xff0c;能够迅速处理和检索信息&a…

干货分享③:免费制作产品管理系统!

他来了&#xff0c;他来了&#xff0c;他带着码上飞CodeFlying走来了&#xff01;今天继续为大家带来一期干货分享&#xff0c;教大家如何免费使用码上飞来的开发产品管理系统 &#xff01; 一、登陆官网 码上飞 CodeFlying | AI 智能软件开发平台&#xff01; 点击立即体验注…

System Verilog学习笔记(十八)——线程控制

线程控制 发生器把激励传给代理时&#xff0c;环境类需要知道发生器什么时候完成任务&#xff0c;以便及时终止测试平台中还在运行的线程&#xff0c;这个过程就需要借助线程间的通信来完成。常用的线程间通信有事件控制、wait语句、SV信箱和旗语等。 Verilog对语句有两种分组…

LVGL如何创建页面并实现页面的切换

如何绘制一个页面 先搞清楚一个问题&#xff0c;那就是绘制一个页面&#xff0c;是直接创建一个新的屏幕&#xff0c;还是基于默认的屏幕创建一个一个的父类呢&#xff1f; 参考这篇文章 LVGL_多界面切换_lvgl 多页面建立-CSDN博客 可知通常是创建一个新的屏幕&#xff0c;每个…

洛谷P2233 公交车路线

本题题号特殊&#xff0c;相对简单。 题目描述 在长沙城新建的环城公路上一共有 88 个公交站&#xff0c;分别为 A、B、C、D、E、F、G、H。公共汽车只能够在相邻的两个公交站之间运行&#xff0c;因此你从某一个公交站到另外一个公交站往往要换几次车&#xff0c;例如从公交站…