程序逻辑控制

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语言里学过),在这之后你程序每次启动后的第一次随机数,第二次随机数甚至以后的值都是固定的。 

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024【问题解决】Github 2024无法克隆git clone自从签了2F2安全协议之后

项目场景:ping通Github但没法clone–502 问题描述 提示:ping通Github但没法clone--502: 例如:git clone https://gitclone.com/l.git/*** $ git clone https://github.com/darrenpig/Yocto Cloning into Yocto_tutorial... fatal: unable to access https://gitclone.co…

mysql数据库入门到精通-Windows版本mysql安装(1)

文章目录 一、数据库介绍1.1、数据库概念1.2、为什么要使用数据库1.3、关系型数据库与非关系型数据库1.4、数据库术语1.5、mysql下载及地址 二、安装mysql数据库三、mysql的管理工具3.1、mysql command line client使用 四、SQL结构化查询语言4.1、SQL概述4.2、SQL发展4.3、SQL…

【CSP试题回顾】201503-3-节日

CSP-201503-3-节日 关键点&#xff1a;格式化输出 在C中&#xff0c;格式化输出通常利用iostream库中的功能&#xff0c;特别是iomanip头文件提供的一系列操作符。这些操作符用于控制输出格式&#xff0c;如宽度、填充、对齐方式等。在你提供的代码中&#xff0c;用于格式化输…

飞桨AI框架安装和使用示例

飞桨AI框架安装和使用示例 飞桨PaddlePaddle是非常流行的国产AI框架&#xff0c;让我们一起来动手实践吧&#xff01; 安装 飞桨安装参考页面&#xff1a;https://www.paddlepaddle.org.cn/install/quick?docurl/documentation/docs/zh/install/pip/linux-pip.html 在这个安…

乌鸡的身高

解法&#xff1a; 只需要看身高最高的乌鸡个数是否>2.若满足则除去当前这只乌鸡的最高身高都是最高身高。 若不满足则只需要看最高的和第二高的乌鸡。 #include<iostream> #include<vector> #include<algorithm> #include<cmath> using namespac…

leetcode 热题 100_滑动窗口最大值

题解一&#xff1a; 双端队列&#xff1a;滑动窗口的本质是在窗口末尾添加一个元素&#xff0c;并移除头部的一个元素。对于添加的元素&#xff0c;直接和当前最大值比较即可&#xff0c;但对于移除的元素&#xff0c;如果移除的是原先的最大值&#xff0c;则需要重新遍历窗口寻…

支小蜜校园防欺凌系统如何有效应对学生霸凌?

学生霸凌不仅直接伤害到被霸凌者的身心健康&#xff0c;也对整个校园的和谐氛围构成了威胁。为了应对这一问题&#xff0c;校园防欺凌系统应运而生&#xff0c;成为维护校园安全、保护学生权益的重要工具。那么当校园防欺凌系统面对学生霸凌时&#xff0c;该如何有效应对呢&…

3.6 day1 FreeRTOS

1.总结keil5下载代码和编译代码需要注意的事项 注意要将魔术棒的的debug选项中的setting中的flashdownload中的reset and run 勾选上&#xff0c;同时将pack中的enable取消勾选 2.总结STM32Cubemx的使用方法和需要注意的事项 可以通过功能列表对引脚进行设置&#xff0c;并且可…

重新排序。

问题描述 给定一个数组A和一些查询 L,R求数组中第L至第 R个元素之和。 小蓝觉得这个问题很无聊,于是他想重新排列一下数组使得最终每个查 询结果的和尽可能地大。小蓝想知道相比原数组,所有查询结果的总和最多可 以增加多少? 输入格式 输入第一行包含一个整数n。 第二行包含n个…

一篇文章带你通关并查集(持续更新中)

这篇文章的所有题目均来自于自行整理&#xff0c;代码均来自于自行梳理调试&#xff08;思路可能比较暴力&#xff09;。初衷在于整理练习思路&#xff0c;且起到督促自己学习的作用 本文分成将三个模块 1.普及组 &#xff08;洛谷黄题&#xff09; 2.提高组 &#xff08;洛…

数据结构与算法-线性查找

引言 在计算机科学领域&#xff0c;数据结构和算法是构建高效软件系统的核心要素。今天我们将聚焦于最基础且广泛应用的一种查找算法——线性查找&#xff0c;并探讨其原理、实现步骤以及实际应用场景。 一、什么是线性查找&#xff1f; 线性查找&#xff08;Linear Search&am…

腾讯云哪款服务器最便宜划算?2024腾讯云服务器优惠价格表

腾讯云优惠活动2024新春采购节活动上线&#xff0c;云服务器价格已经出来了&#xff0c;云服务器61元一年起&#xff0c;配置和价格基本上和上个月没什么变化&#xff0c;但是新增了8888元代金券和会员续费优惠&#xff0c;腾讯云百科txybk.com整理腾讯云最新优惠活动云服务器配…

嵌入式学习第二十六天!(网络传输:TCP编程)

TCP通信&#xff1a; 1. TCP发端&#xff1a; socket -> connect -> send -> recv -> close 2. TCP收端&#xff1a; socket -> bind -> listen -> accept -> recv -> send -> close 3. TCP需要用到的函数&#xff1a; 1. co…

CIA402协议笔记

文章目录 1、对象字典1.1 Mode of Operation&#xff08; 606 0 h 6060_h 6060h​)1.2 Modes of opration display( 606 1 h ) 6061_h) 6061h​) 2、状态机2.1 控制字&#xff08;ControlWord、6040h&#xff09;2.2 状态字&#xff08;StatusWord、6041h&#xff09;2.3 shutd…

练习 6 Web [极客大挑战 2019]HardSQL

[极客大挑战 2019]HardSQL 先尝试登录&#xff0c;查看报错信息 admin 111 password 1111 登录失败admin 111 password 1’or’1 登录成功 这里直接试了万能密码成功&#xff0c;复习一下&#xff0c;第一个 ’ 是为了闭合前面的sql语句&#xff0c;最后的1后面没有 ’ 是因为…

钉钉群内自定义机器人发送消息功能实现

文章目录 钉钉群内自定义机器人发送消息功能实现1、设置webhook自定义机器人2、查看官方文档&#xff0c;使用open api3、编写业务代码4、发送成功结果如下 钉钉群内自定义机器人发送消息功能实现 1、设置webhook自定义机器人 设置关键词 添加完成后&#xff0c;获得改机器人的…

【R语言实战】聚类分析及可视化

&#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#xff0c;参与研究经费10w、40w级横向 文…

外包干了8天,技术退步明显。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入杭州某软件公司&#xff0c;干了接近3年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

泰克P6139B TektronixP6139B无源探头

特征&#xff1a; 500 MHz 探头带宽 探头尖端的大输入阻抗 10 MOhm&#xff0c;8 pF 补偿范围&#xff1a;8 pF 至 18 pF 电缆长度&#xff1a;1.3M 10X 衰减系数 300 V CAT II 输入电压 用于探测小几何电路元件的紧凑型探头 用于增强被测设备可见性的小型探头主体 可更换的探…

Qt+FFmpeg+opengl从零制作视频播放器-1.项目介绍

1.简介 学习音视频开发&#xff0c;首先从做一款播放器开始是比较合理的&#xff0c;每一章节&#xff0c;我都会将源码贴在最后&#xff0c;此专栏你将学习到以下内容&#xff1a; 1&#xff09;音视频的解封装、解码&#xff1b; 2&#xff09;Qtopengl如何渲染视频&#…