Java—逻辑控制与输入输出

各位看官:如果您觉得这篇文章对您有帮助的话
欢迎您分享给更多人哦
感谢大家的点赞收藏评论,感谢您的支持
c74aa267346f4a60b3edbe51bce6243b.png!!!

一.顺序结构:

我每天起床,躺在床上玩手机,然后吃中午饭,睡觉,打游戏,吃饭,打游戏,睡觉(这个就是顺序结构,顺序结构比较简单,按照代码书写的顺序一行一行执行。


二:分支结构:

1.if语句

语法一:

if ( 布尔表达式 ) {          里面只能是布尔表达式
// 语句
}
语法二
if ( 布尔表达式 1 ){
// 语句 1
} else if ( 布尔表达式 2 ){
// 语句 2
} else {
// 语句 3
}

一个小问题:

int x = 20 ;
if ( x == 10 );   这个分号多余了,导致了接下来的打印没有条件控制
{
System . out . println ( "hehe" );
}
// 运行结果
hehe

此处多写了一个分号, 导致分号成为了 if 语句的语句体, { } 中的代码已经成为了和一个 if 无关的代码块

小练习:

判断一个年份是否为闰年
 public static void main(String[] args) {int year = 2000;if (year % 4 == 0&&year % 100 != 0||year % 400 == 0) {System.out.println("是闰年");}else{System.out.println("不是闰年");}}

2.switch语句

switch ( 表达式 ){
case 常量值 1 :{
语句 1 ;
break ;
}
case 常量值 2 :{
语句 2 ;
break ;
}
...
default :{
内容都不满足时执行语句 ;
break ;
}
}
注意事项1:
  • 多个case后的常量值不可以重复
  • switch的括号内只能是以下类型的表达式:
  • 基本类型:bytecharshortint,注意不能是long,float,double类型
  • 引用类型:String常量串、枚举类型
  • break不要漏掉
String类型我讲述一下:
public static void main(String[] args) {String s = "abc";switch (s){case "a" :System.out.println("a");break;case "abc":System.out.println("就是abc");break;case "bc":System.out.println("bc");break;default:System.out.println("没有相同的");break;}

就是把String类型的变量放进switch的括号内

注意事项二:

switch 不能表达复杂的条件
// 例如 : 如果 num 的值在 10 20 之间 , 就打印 hehe
// 这样的代码使用 if 很容易表达 , 但是使用 switch 就无法表示 .
if ( num > 10 && num < 20 ) {
System . out . println ( "hehe" );
}
注意事项3:
switch 虽然支持嵌套 , 但是很丑并且看着难受,一般不推荐 ~:
int x = 1;
int y = 1;
switch(x) {
case 1:
switch(y) {
case 1:
System.out.println("hehe");
break;
}
break;
case 2:
System.out.println("haha");
break;
}

综上, 我们发现, switch 的使用条件挺多的

三:循环结构

1:while循环

基本语法格式 :
循环条件只能是boolean类型, true, 则执行循环语句 ; 否则结束循环 .
代码示例 1: 计算 1! + 2! + 3! + 4! + 5! 的值
int num = 1 ;
int sum = 0 ;
// 外层循环负责求阶乘的和
while ( num <= 5 ) {
int factorResult = 1 ;
int tmp = 1 ;
// 里层循环负责完成求阶乘的细节 .
while ( tmp <= num ) {
factorResult *= tmp ;
tmp ++ ;
}
sum += factorResult ;
num ++ ;
}
System . out . println ( "sum = " + sum );
这里我们发现, 当一个代码中带有多重循环的时候, 代码的复杂程度就大大提高了. 而比较复杂的代码就更容易出错.
后面我们会采用更简单的办法来解决这个问题

2:break和continue

break:break 的功能是让循环提前结束.

int num = 100;
while (num <= 200) {
if (num % 3 == 0) {
System.out.println("找到了 3 的倍数, 为:" + num);
break;
}
num++;
}
// 执行结果
找到了 3 的倍数, 为:102
我们找到了,  break 就会让循环结束 .
continue:continue 的功能是跳过这次循环 , 立即进入下次循环
代码示例 : 找到 100 - 200 中所有 3 的倍数
int num = 100;
while (num <= 200) {
if (num % 3 != 0) {
num++; // 这里的 ++ 不要忘记! 否则会死循环.
continue;
}
System.out.println("找到了 3 的倍数, 为:" + num);
num++;
}
执行到 continue 语句的时候, 就会立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句.

3:for循环

两种遍历数组的方式:
第一种:我们学C的时候普遍用的(java的数组定义和C不太一样,后面的博客我会具体讲解)
int [] array = new int []{ 10 , 20 , 30 , 40 , 50 };
for ( int i = 0 ; i < 5 ; i ++ ){
System . out . println ( array [ i ]);
}
第二种:java提供的 使用 for-each 遍历数组
int [] array = { 1 , 2 , 3 };
for ( int x : array ) {         这里for(元素的类型:数组名)
System . out . println ( x );
}
第二种的缺点就是拿不到数组的下标

4:do while循环

特点:先执行一次

先执行循环语句, 再判定循环条件,循环条件成立则继续执行,否则循环结束。
例子:打印1~10
int num = 1 ;
do {
System . out . println ( num );
num ++ ;
} while ( num <= 10 )
【注意事项】
1. do while 循环最后的分号不要忘记
2. 一般 do while 很少用到 , 更推荐使用 for while.

四:输入输出

1. 输出:

System . out . println ( msg ); // 输出一个字符串 , 带换行
System . out . print ( msg ); // 输出一个字符串 , 不带换行
System . out . printf ( format , msg ); // 格式化输出
  • println 输出的内容自带 \n, print 不带 \n
  • printf 的格式化输出方式和 C 语言的 printf 是基本一致的.

例如:

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

2:从键盘输入:

使用 Scanner 类里的方法 读取字符串 / 整数 / 浮点数
import java . util . Scanner ; // 需要导入 util
Scanner sc = new Scanner ( System . in );
在Java中,System.in 是一个预定义的输入流(InputStream),它代表了标准输入流。这个输入流通常对应于键盘输入,但是也可以被重定向,例如从文件或其他输入源读取数据。System.in是Java程序用来从外部(如用户)接收输入的一种方式
sc是Scanner类型的变量,它可以调用Scanner里面的方法
System . out . println ( " 请输入你的姓名: " );
String name = sc . nextLine (); 读取下一行
has.NexLine(检查输入时是否还有下一行)
System . out . println ( " 请输入你的年龄: " );  
int age = sc . nextInt ();读取下一个整形
System . out . println ( " 请输入你的工资: " );
float salary = sc . nextFloat ();读取下一个浮点数
System . out . println ( " 你的信息如下:" );
System . out . println ( " 姓名 : " + name + "\n" + " 年龄: " + age + "\n" + " 工资: " + salary );
sc . close (); // 注意 , 要记得调用关闭方法,关闭Scanner对象,释放它所占用的资源
//sc.next() 读取下一个完整的token(一般是单词
// 执行结果
请输入你的姓名:
张三
请输入你的年龄:
18
请输入你的工资:
1000
你的信息如下:
姓名 : 张三
年龄: 18
工资: 1000 . 0
注意:一般不是读取一行的方法 例如sc.nextInt,会读取用户输入的整数直到遇到空格,换行符,或输入结束,如果用户输入的不是整数,就会抛出异常(和C不一样)

2.1:循环输入

使用 Scanner 循环读取 N 个数字,并求取其平均值(别忘了转换成double类型
Scanner sc = new Scanner(System.in);
int sum = 0;
int num = 0;
while (sc.hasNextInt()) {int tmp = sc.nextInt();sum += tmp;num++;
}
System.out.println("sum = " + sum);
System.out.println("avg = " +(double) sum / num);
sc.close();
注意事项 : 当循环输入多个数据的时候 , 使用 ctrl + z 来结束输入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl + d).

2.2. 猜数字游戏:

游戏规则 :二分查找的猜
系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 "低了", 如果输入的数字比该随机数大, 提示 "高了" , 如果输入的数字和随机数相等, 则提示 "猜对了
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);//生成随机数1~100(左闭右开)
//int toGuess = random.nextInt(20)+10;//生成随机数10~30(左闭右开)
// 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—逻辑控制与输入输出全部内容了,
 欢迎各位大佬评论区留言修正
您的支持就是我最大的力量
​​​bcb51650eac54f748f693cdc5b00f9a6.png2d8b40093abe47c7b347cdd7c906e87f.gif

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

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

相关文章

PIFA天线工作原理:【图文讲解】

1&#xff1a;什么是PIFA天线 PIFA ( Planar Inverted F-shaped Antenna)天线即平面倒F形天线&#xff0c;因为整个天线的形状像个倒写的英文字母F而得名 2&#xff1a;PIFA天线的应用 PIFA常见于手机天线设计&#xff0c;占手机内置天线的60%-80% 3&#xff1a;PIFA天线结构…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-09

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-09 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-09目录1. Can LLMs plan paths with extra hints from solvers?摘要创新点算法模型实验效果重要数据与结论 推荐阅读指数 2. Sc…

SQL第14课挑战题

1. 将两个select语句结合起来&#xff0c;以便从OrderItems表中检索产品ID(prod_id)和quantity。其中&#xff0c;一个select语句过滤数量为100的行&#xff0c;另一个select语句过滤ID以BNBG开头的产品。按产品ID对结果进行排序。 2. 重新第一题&#xff0c;仅使用单个select语…

【原创】可用于 Android Studio 的翻译插件

在不少讲解Android 开发的老师视频中会出现一个运行在Android Studio 上的翻译插件&#xff0c;感觉挺实用的。 接下来&#xff0c;我们把它安装在我们的Android Studio 上。 设置 点击右上角齿轮按钮&#xff0c;选择Settings 安装 翻译插件 输入Tanslation&#xff0c;选…

[简单实践]Noisy Print - 自制基于加性噪声模型的简易降噪器

NoisyPrint 最近在学习的过程中&#xff0c;突然想起一个在Adobe Audition中用过的功能。 为什么会想到这个功能呢&#xff0c;因为在我使用DeepFilter的过程中&#xff0c;我发现对于一些低信噪比的信号来说&#xff0c;DeepFilter很容易出现过拟合现象&#xff0c;导致音源…

低质量数据的多模态融合方法

目录 多模态融合 低质量多模态融合的核心挑战 噪声多模态数据学习 缺失模态插补 平衡多模态融合 动态多模态融合 启发式动态融合 基于注意力的动态融合 不确定性感知动态融合 论文 多模态融合 多模态融合侧重于整合多种模态的信息,以实现更准确的预测,在自动驾驶、…

08_OpenCV文字图片绘制

import cv2 import numpy as npimg cv2.imread(image0.jpg,1) font cv2.FONT_HERSHEY_SIMPLEXcv2.rectangle(img,(500,400),(200,100),(0,255,0),20) # 1 dst 2 文字内容 3 坐标 4 5 字体大小 6 color 7 粗细 8 line type cv2.putText(img,flower,(200,50),font,1,(0,0,250)…

c#-出现类型初始值设定项引发异常的解决方案

当出现该问题时&#xff0c;通常摸不着头脑&#xff0c;无法定位到该问题所在行。 我们可以找到应发异常的类&#xff0c;例如我上面类为YY_Model.DefaultConfig。 打开这个类文件&#xff0c;加一个断点&#xff0c;一行行运行&#xff0c;到哪里突然跳出该文件&#xff0c;则…

(计算机毕设)基于Vue和Spring Boot的宠物救助网站设计与实现

博主可接毕设&#xff01;&#xff01;&#xff01; 毕业设计&#xff08;论文&#xff09; 基于Vue和Spring Boot的宠物救助网站设计与实现 摘 要 随着中国互联网的迅猛发展&#xff0c;传统宠物救助领域面临着信息管理繁琐、辐射范围有限、信息传播受限、丢失宠物找回几率较…

机器学习框架(含实例说明)

机器学习框架是用于开发和部署机器学习模型的软件库和工具集。它们提供了一系列的算法、工具和基础设施&#xff0c;帮助开发者更高效地构建、训练和部署机器学习模型。以下是一些主要的机器学习框架及其详细介绍&#xff1a; 1. TensorFlow TensorFlow 是由Google开发的开源…

卫瓴科技,驶向「协同CRM」深水区

在卫瓴协同CRM的产品之上&#xff0c;能看到的不单纯是产品本身&#xff0c;即“提高转化率”这个单纯的指标&#xff0c;而更多的是在产品之中蕴含的“现代企业营销建设”的科学理念和认知。以此为基础&#xff0c;企业可以构建真正有价值且能长期驱动的品牌营销模型。 作者…

攻防世界---->sherlock

做题笔记。 下载。 单词中出现大写很可疑。因为大写最多出现在开头等。 猜测是隐写术。 进行筛选。 借助python实现 with open(C:\\Users\\Acer\\Downloads\\f590c0f99c014b01a5ab8b611b46c57c.txt, r) as file:text file.read() uppercase_letters [char for char in text…

Study-Oracle-11-ORALCE19C-ADG集群测试

一、用户及数据测试 1、主库创建tes3用户&#xff0c;创建表test_table。备库登录test3用户并查询test_table表中数据。 -- 创建用户 CREATE USER test7 IDENTIFIED BY test7;-- 给予创建会话的权限 GRANT CREATE SESSION TO test7;-- 给予创建表的权限 GRANT CREATE TABLE TO…

贴吧软件怎么切换ip

在网络使用中&#xff0c;有时我们需要切换IP地址来满足特定的需求&#xff0c;比如需要切换贴吧软件IP以进行不同的操作。本文将介绍几种贴吧切换IP地址的方法&#xff0c;帮助用户更好地管理自己的网络身份和访问权限。 1、更换网络环境‌ 通过连接到不同的Wi-Fi网络或使用移…

解决雪花ID在前端精度丢失问题

解决雪花ID在前端精度丢失问题 在现代分布式系统中&#xff0c;雪花算法&#xff08;Snowflake&#xff09;被广泛用于生成唯一的ID。这些ID通常是Long类型的整数。然而&#xff0c;当这些ID从后端传递到前端时&#xff0c;JavaScript的精度限制可能会导致精度丢失&#xff0c…

Android 电源管理各个版本的变动和限制

由于Android设备的电池容量有限&#xff0c;而用户在使用过程中会进行各种高耗电操作&#xff0c;如网络连接、屏幕亮度调节、后台程序运行等&#xff0c;因此需要通过各种省电措施来优化电池使用‌&#xff0c;延长电池续航时间&#xff0c;提高用户体验&#xff0c;并减少因电…

开源的云平台有哪些?

开源云平台为用户提供了构建、管理和运行云基础设施及应用的能力&#xff0c;同时允许社区参与开发和改进。以下是一些知名的开源云平台&#xff1a; 1. OpenStack 简介&#xff1a;OpenStack&#xff1a;一个广泛使用的开源云平台&#xff0c;它由多个组件组成&#xff0c;提…

【ubuntu】修改用户名、主机名、主文件夹名、登录名、密码

目录 1.他们是什么 2.修改方法 2.1 修改用户密码 2.2 修改主机名 2.2.1 切换到root用户 2.2.2 修改名称 2.3 修改用户名 主文件夹名 登录名 2.2.1 sudoers 2.2.2 passwd 2.2.3 shadow 2.2.4 group 2.2.5 修改主文件夹名 3.重启 1.他们是什么 &#xff08;1&#xf…

一键生成PPT的AI工具-Kimi!

一键生成PPT的AI工具-Kimi&#xff01; 前言介绍Kimi为什么选择Kimi如何使用Kimi在线编辑PPT下载生成的PPT自己编辑 结语 &#x1f600;大家好&#xff01;我是向阳&#x1f31e;&#xff0c;一个想成为优秀全栈开发工程师的有志青年&#xff01; &#x1f4d4;今天不来讨论前后…

前端反接保护:实用方案解析与探讨

前端反接保护通常采用肖特基二极管方案或PMOS/NMOS方案&#xff0c;本文另外介绍一种理想二极管方案。 1、肖特基二极管方案 由于肖特基二极管具有正向导通电压&#xff0c;只能用于小电流场合&#xff0c;甚至于直接使用普通的整流二极管。比如1A电流&#xff0c;设D1的正向…