当前位置: 首页 > news >正文

JAVA SE — 循环与分支和输入输出

1.语句的读取
​​​​​​在这里插入图片描述
每一个程序在运行过程,如果遇到的是顺序结构,语句是从上到下读取;遇到分支结构是通过分支语句的表达式选择读取语句;遇到循环结构,会重复读取语句,直到不满足循环表达式,跳出循环,终止循环内的语句的读取。

2. if else分支

语法上的定义
​​​​​​在这里插入图片描述
语句读取到 if else分支时,会先判断 if 语句的表达式,满足条件就进入if 分支内的语句进行读取,读取后不会再进入后面的分支;如果 if 分支的表达式不满足,会判断下一分支else if 的表达式,如果表达式为真,进入分支内的语句进行读取,读取后不会再进入后面的分支;如果else if 分支表达式结果为假,进入最后else 分支,不需要表达式进行判断,读取号分支内的语句后,结束分支。

if else 分支的使用

判断一个数是否为奇数,如果是,输出奇数,如果不是,输出偶数;

public class Test {public static void main(String[] args) {int a = 2;//判断是否为奇数或者偶数if(a % 2 == 1)System.out.println("奇数");elseSystem.out.println("偶数");}
}

程序输出

在这里插入图片描述
输入一个数,如果是大于0,输出 >, 如果等于0,输出 ==,如果小于0,输出 <;

 public static void main(String[] args) {int num = 0;if (num > 0) {System.out.println(">");} else if (num < 0) {System.out.println("<");} else {System.out.println("==");}}

输出结果
在这里插入图片描述

3. switch case分支的使用

使用每一个分支case分支对应周一到周末,1对应星期一,2对应星期二,以此类推到7对应星期天

//switch case分支的使用public static void main(String[] args) {int day = 7;//先对表达式进行判断switch(day){//day此时为7对应 case 7的分支case 1:System.out.println("星期一");break;//break的作用是跳出循环,此case 2:   //出是为了不执行多个分支System.out.println("星期二");break;case 3:System.out.println("星期三");break;case 4:System.out.println("星期四");break;case 5:System.out.println("星期五");break;case 6:System.out.println("星期六");break;case 7://满足输出System.out.println("星期天");break;default:System.out.println("输出错误");}

输出结果

在这里插入图片描述

4.while循环的使用

输出1 - 10 的数字

//while循环:输出 1 - 10public static void main(String[] args) {int i = 1;while(i <= 10){System.out.print(i + " ");//i + " " 输出的是字符串//等价于将i 加到空格字符前//输出 1和空格i++;}}

在这里插入图片描述
求两个数的最大公约数

//while:求两个数的最大公约数public static void main(String[] args) {int a = 16;int b = 24;//使用辗转相除法不断的求余数,赋值int c = a % b;//16 % 24 = 16while(c != 0){//c = 16满足 第二次 c = 8满足 c = 0不满足 a = b;//a = b = 24   a = 16b = c;//b = 16;   b =8c = a % b;//c = 24 % 16 = 8  c = 16 % 8 =0}System.out.println("a 和 b 的最大公约数是:" + b);}

在这里插入图片描述

以下程序输出的结果是什么?

  //while:break 和 continuepublic static void main(String[] args) {int i = 1;while(i < 10){while(i !=5){i++;}if(i == 6)break;System.out.println(i + " ");i++;}}

i 是从1开始进入循环的,满足第一次while循环的表达式,进入while循环的内部语句,遇到第二次while循环,满足表达式,进入第二次while循环的内部,i++,一直循环到不满足第二层while循环的表达式,即 i 不等于5,跳出第二次while循环时,i 等于5,判断if语句的表达式,不满足,到输出语句,输出5和空格,i++变为6,重新进入第一层while循环,满足 i < 10,进入第二层while消耗会,满足判断条件,i一直++,满足i != 5,导致死循环。

在这里插入图片描述

此时程序一直死循环,结果是一直输出5。

在这里插入图片描述

5.for循环的使用

输出 1 - 10 的数字

在键盘上输入mian后回车,在idea中可以快速生成mian方法语句

在这里插入图片描述
在这里插入图片描述

输入fori,后回车快速生成for循环语句

在这里插入图片描述
在这里插入图片描述

完善for循环的表达式,输入sout后回车,快速生成printfln语句

在这里插入图片描述

在这里插入图片描述

//for循环:输出 1 -10public static void main(String[] args) {for (int i = 1; i <= 10 ; i++) {System.out.println(i + " ");}}

在这里插入图片描述

以下程序输出的结果是什么?

 //以下程序输出的结果是什么?public static void main(String[] args) {for (int i = 0; i < 10; i++) {if(i == 5)continue;System.out.print(i + " ");}}

i 从0开始,满足判断i < 10,进入语句中,不满足if语句的判断,continue不执行,输出1和空格,然后进入for循环的调整,i++,满足 i < 10,重复以上流程,直到 i == 5 时,执行continue,此轮循环continue后面的语句不再执行,不输出 5 和空格,i++变为6,重复流程输出,直到i不满足 i < 10跳出循环。

在这里插入图片描述

6.do while循环的使用

以下程序的输出结果是什么?

  //do while:以下程序的输出结果是什么public static void main(String[] args) {int i = 0;int j = 0;while (j < 2) {do {i++;if (i == 6)break;//跳出循环System.out.print(i + " ");} while (i < 10);j++;}}

do while循环与while循环的区别在于do while循环第一次进入循环内部不需要判断,而while循环需要先进行表达式的判断;while循环满足j < 2,进入内部语句,do while循环第一次进入不需要表达式判断,直接进入循环内部,执行 i++, i 变成2,不满足if语句,输出 1 和空格,最后判断while的表达式,满足 i < 10,重复执行do while循环进入内部,一直到满足if语句的表达式,跳出do while循环,此时 i 等于6,j++变为1,满足while循环,进入循环内部,执行do while循环,i++变为7,不满足if语句,执行输出语句,一直重复到 i < 10,跳出do while循环,j++变为2,不满 j < 2,跳出循环。

在这里插入图片描述

7. 输出语句

    //输出语句:printpublic static void main(String[] args) {int i = 10;System.out.print(i);//将数据打印,变量名作为参数System.out.println();//换行System.out.println(i);//将数据打印后换行,变量名作为参数System.out.printf("%d",i);//按照指定格式打印,与C语言使用方式一样}

在JAVA中比较少使用printf语句将数据按照指定格式输出,通常使用println输出语句。

在这里插入图片描述

8.输入语句

JAVA程序中使用输入语句需要导包:import java.util.Scanner;,输入Scanner后回车,就会自动生成,类似于C语言中的头文件。
在这里插入图片描述

需要先输入: Scanner scanner = new Scanner(System.in);

在这里插入图片描述

创建变量接收返回值: int n = scanner.nextInt();

在这里插入图片描述

 //Scanner的使用public static void main(String[] args) {Scanner scanner = new Scanner(System.in);//Scanner是一种类 scanner是变量名// new相当于新开辟一块空间//system.in表示是系统输入//创建变量int n = scanner.nextInt();//scanner.nextInt()表示输入的是一个整型值//创建整型变量n接收返回值//输出nSystem.out.println(n);}

输入 1 ,输出 1
在这里插入图片描述

此时只能输出1次,如果想多次输入,可以使用while循环,表达式为:scanner.hasNext()

 //Scanner:多次输出public static void main(String[] args) {//创建变脸scannerScanner scanner = new Scanner(System.in);//scanner.hasNext()表示有多次输出while (scanner.hasNext()) {//创建变量n接收键盘输入的值int n = scanner.nextInt();//输出nSystem.out.println(n);}}

在这里插入图片描述

表达式的值还可以是ture,while循环一直执行

    //Scanner:多次输出public static void main(String[] args) {//创建变脸scannerScanner scanner = new Scanner(System.in);while (true) {//创建变量n接收键盘输入的值int n = scanner.nextInt();//输出nSystem.out.println(n);}}

在这里插入图片描述

9.使用输入输出和循环与分支实现一个猜数字小游戏

生成随机数,使用Random这一个类,需要导包:import java.util.Random;,输入Random后回车,会自动生成导包需要的文件。

在这里插入图片描述

创建random变量

在这里插入图片描述

创建变量n接收生成的随机数

在这里插入图片描述

使用while循环完成多次输入,如果输入的数大于随机数,输出猜大了,如果输入的数小于随机数,输出猜小了,其它输出猜对了,并打印出随机数,跳出while循环,回收scanner指向的空间。

在这里插入图片描述

    //猜数字小游戏public static void main(String[] args) {Random random = new Random();//Ramdom 是一种类//new Random()是开辟新的空间//将新开辟的空间给random使用int n = random.nextInt(100);//random.nextInt表示生成的是整型值//()括号内表示生成的范围:0 - 100//开辟新的空间赋给变量scannerScanner scanner = new Scanner(System.in);while(true){System.out.print("请输入猜测的数字:");//guest接收输入的值int guest = scanner.nextInt();//猜测判断if(guest > n){System.out.println("猜大了");} else if (guest < n) {System.out.println("猜小了");} else {System.out.println("猜对了");System.out.println("随机数是:" + n);break;}}scanner.close();//回收scanner指向的空间}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.xdnf.cn/news/585055.html

相关文章:

  • 有没有开源的企业网盘,是否适合企业使用?
  • 记录:express router,可以让node.js后端文件里的路由分布的更清晰
  • vim以及vi编辑器常用快捷键指令
  • 服务器操作系统调优内核参数(方便查询)
  • 复杂项目中通过使用全局变量解决问题的思维方式
  • 2025中青杯数学建模B题思路+模型+代码
  • 【TTS回顾】CosyVoice 深度解析:基于LLM的TTS模型
  • iOS 直播弹幕功能的实现
  • 前端三件套之html详解
  • DevOps体系之Jmeter
  • java面试每日一背 day2
  • MySQL错误1419(HY000)解决方案:SUPER权限缺失与二进制日志启用冲突的3种处理方式
  • 内存管理子系统学习记录
  • uniapp实现H5、APP、微信小程序播放.m3u8监控视频
  • AVL树的实现
  • 【线段树】P2846 [USACO08NOV] Light Switching G|LG4|普及+
  • 无人机集装箱箱号识别系统准确率如何?能达到多少?
  • 微服务架构中的 RabbitMQ:异步通信与服务解耦(一)
  • Linux探秘:驾驭开源,解锁高性能——基础指令(续集)
  • LeetCode 1340. 跳跃游戏 V(困难)
  • 【Harmony】【鸿蒙】List列表View如果刷新内部的自定义View
  • 力扣HOT100之二叉树: 236. 二叉树的最近公共祖先
  • vue3定于组件名字的几种方法
  • 杨校老师竞赛课之青科赛GOC5-6年级组模拟题
  • ISO 26262- 5 评估硬件度量值
  • 2025年中青杯赛题浅析-快速选题
  • 12kV 环保气体绝缘交流金属封闭开关设备现场交流耐压试验规范
  • Web前端开发(HTML、CSS快速入门)
  • 2024 年地理信息技术与应用技能大赛(选拔赛/初级)——实操试题
  • 部署Prometheus并通过Grafana展示界面