一、顺序结构

顺序结构比较简单. 像我们之前写过的代码就是顺序结构的, 按照代码书写的顺序一行一行执行

public static void main(String[] args) {System.out.println("hello");System.out.println("haha");System.out.println(1200);}

如果调整代码的书写顺序, 则执行顺序也发生变化

public static void main(String[] args) {System.out.println(1200);System.out.println("hello");System.out.println("haha");}

二、分支结构

2.1、if语句

 基本语法形式1if(布尔表达式){//条件满足时执行代码}基本语法形式2if(布尔表达式){//条件满足时执行代码}else{//条件不满足时执行代码}基本语法形式3 多分支的情况if(布尔表达式){//条件满足时执行代码}else if(布尔表达式){//条件满足时执行代码}else{//条件都不满足时执行代码}

代码示例1: 判定一个数字是奇数还是偶数

public static void main(String[] args) {//判定一个数字是奇数还是偶数int a = 10;if(a % 2 == 0){System.out.println("是偶数");}else{System.out.println("是奇数");}}

代码示例2: 判定一个数字是正数还是负数

public static void main(String[] args) {//代码示例2: 判定一个数字是正数还是负数int a = 10;if(a > 0){System.out.println("a 是正数");}else{System.out.println("a 是负数");}}

代码示例3: 判定某一年份是否是闰年

能被4整除却不能被100整除或能被400整除的年份就是闰年!

public static void main(String[] args) {/*** 判定某一年份是否是闰年* 能被4整除却不能被100整除或能被400整除的年份就是闰年!*/int year = 100;if((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)){System.out.println(year + "是润年");}else{System.out.println(year + "不是闰年");}}

注意事项 悬垂 else 问题

if / else 语句中可以不加 大括号 ,但是也可以写语句(只能写一条语句).,此时 else 是和最接近的 if 匹配.
但是实际开发中我们 不建议 这么写. 最好加上大括号

public static void main(String[] args) {if(true)System.out.println("haha");if(true)System.out.println(100);elseSystem.out.println("hello");}

2.2、switch 语句

 基本语法switch(整数|枚举|字符|字符串){case 内容1 : {内容满足时执行语句;[break;]}case 内容2 : {内容满足时执行语句;[break;]}...default:{内容都不满足时执行语句;[break;]}}

代码示例: 根据 day 的值输出星期

public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int day = scanner.nextInt();switch(day){case 1:System.out.println("星期一");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("输入错误!");break;}}

根据 switch 中值的不同, 会执行对应的 case 语句. 遇到 break 就会结束该 case 语句.
如果 switch 中的值没有匹配的 case, 就会执行 default 中的语句.
我们建议一个 switch 语句最好都要带上 default

注意事项1 break 不要遗漏, 否则会失去 “多分支选择” 的效果

public static void main(String[] args) {int day = 1;switch(day){case 1:System.out.println("星期一");case 2:System.out.println("星期二");case 3:System.out.println("星期三");case 4:System.out.println("星期四");case 5:System.out.println("星期五");case 6:System.out.println("星期六");case 7:System.out.println("星期日");default :System.out.println("输入错误!");break;}}


我们发现, 不写 break 的时候, case 语句会依次向下执行, 从而失去了多分支的效果

注意事项2 switch 中的值只能是 整数|枚举|字符|字符串

三、循环结构

3.1、while 循环

基本语法格式:

 while(循环条件){循环语句;}

循环条件为 true, 则执行循环语句; 否则结束循环

代码示例1: 打印 1 - 10 的数字

public static void main(String[] args) {//代码示例1: 打印 1 - 10 的数字int a = 1;while(a <= 10){System.out.println(a);a++;}}

代码示例2: 计算 1 - 100 的和

public static void main(String[] args) {//代码示例2: 计算 1 - 100 的和int a = 0;int sum = 0;while(a <= 100){sum = sum + a;a++;}System.out.println(sum);}

代码示例3: 计算 5 的阶乘

public static void main(String[] args) {//代码示例3: 计算 5 的阶乘int a = 1;int ret = 1;while(a <= 5){ret = ret * a;a++;}System.out.println(ret);}

代码示例4: 计算 1! + 2! + 3! + 4! + 5!

public static void main(String[] args) {//代码示例4: 计算 1! + 2! + 3! + 4! + 5!//1!=1; 2!=2; 3!=6; 4!=24; 5!=120int a = 1;int ret = 1;int sum = 0;while(a <= 5){ret = ret * a;a++;sum = sum + ret;}System.out.println(sum);}

注意事项

  1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
  2. 和 if 类似, while 后面的 { 建议和 while 写在同一行.

while语句中的break

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

代码示例: 找到 100 - 200 中第一个 3 的倍数

public static void main(String[] args) {//代码示例: 找到 100 - 200 中第一个 3 的倍数int a = 100;while(a <= 200){if(a % 3 == 0){System.out.println(a + "是100-200之间第一个3的倍数");break;}a++;}}


执行到 break 就会让循环结束

while 中的continue语句

continue 的功能是跳过这次循环, 立即进入下次循环

代码示例: 找到 100 - 200 中所有 3 的倍数

public static void main(String[] args) {//代码示例: 找到 100 - 200 中所有 3 的倍数int a = 100;while(a <= 200){if(a % 3 != 0){a++;continue;}System.out.print(a + " ");a++;}}

执行到 continue 语句的时候, 就会立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句

3.2、for 循环

基本语法

 for(表达式1;表达式2;表达式3){循环体;}
  • 表达式1: 用于初始化循环变量.
  • 表达式2: 循环条件
  • 表达式3: 更新循环变量.

相比于 while 循环, for 循环将这三个部分合并在一起, 写代码时不容易遗漏

代码示例1: 打印 1 - 10 的数字

public static void main(String[] args) {//代码示例1: 打印 1 - 10 的数字for(int a = 1; a <= 10; a++){System.out.print(a + " ");}}

代码示例2: 计算 1 - 100 的和

public static void main(String[] args) {//代码示例2: 计算 1 - 100 的和int sum = 0;for(int i = 1; i <= 100; i++){sum = sum + i;}System.out.println(sum);}

代码示例3: 计算 5 的阶乘

public static void main(String[] args) {//代码示例3: 计算 5 的阶乘int ret = 1;for(int i = 1; i <= 5; i++){ret = ret * i;}System.out.println(ret);}

代码示例4: 计算 1! + 2! + 3! + 4! + 5!

public static void main(String[] args) {//代码示例4: 计算 1! + 2! + 3! + 4! + 5!int ret = 1;int sum = 0;for(int i = 1; i <= 5; i++){ret = ret * i;sum = sum + ret;}System.out.println(sum);}

注意事项 (和while循环类似)

  1. 和 if 类似, for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
  2. 和 if 类似, for 后面的 { 建议和 while 写在同一行.
  3. 和 if 类似, for 后面不要多写 分号, 否则可能导致循环不能正确执行

3.3、do while 循环

基本语法

 do{循环语句;}while(循环条件);

先执行循环语句, 再判定循环条件

代码示例: 打印 1 - 10

public static void main(String[] args) {//代码示例: 打印 1 - 10int i = 1;do{System.out.print(i + " ");i++;}while(i <= 10);}

注意事项:

  1. do while 循环最后的分号不要忘记
  2. 一般 do while 很少用到, 更推荐使用 for 和 while

四、输入输出

4.1、输出到控制台

基本语法
三种打印方式:

System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出,和C语言的一样

  • println 输出的内容自带 \n, print 不带 \n
  • printf 的格式化输出方式和 C 语言的 printf 是基本一致的

C语言的打印方式

4.2、从键盘输入

4.2.1、从键盘上读入一个字符

直接使用 System.in.read 可以读入一个字符. 但是需要搭配异常处理(后面会重点讲到)

public static void main(String[] args) throws IOException {System.out.print("输入一个字符:");char ch = (char) System.in.read();System.out.println(ch);}

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

import java.util.Scanner; // 需要导入 util 包
public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("输入正数:");int a = scanner.nextInt(); //输入正数System.out.println("输入字符串:");String str = scanner.nextLine();//输入字符串}

注意:输入字符串可以使用scanner.nextLine() 和 scanner.next()

这两个是有区别的:
scanner.nextLine(),进行输入的时候可以将空格读进去

scanner.next(),进行输入的时候遇到空格就结束了

使用 Scanner 循环读取 N 个数字

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

public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int a = 0;while (scanner.hasNextInt()){// hasNextInt() 是用来判断 我们输入的数据是否为 int 类型// 是 就 返回 true,否,则返回 false// 当返回 true时,进入循环体a = scanner.nextInt();System.out.println(a);}}

javaSE - 逻辑控制和输入输出(复习)相关推荐

  1. JAVA程序的逻辑控制及输入输出

    为什么会有逻辑控制? 我们把我们想实现的功能转化成程序让计算机辅助我们达到预期的效果.程序本身是按照代码顺序自上而下顺序的一条条执行的,但我们的思维并不是直线式的. 比如今天不下雨,我会出门爬山:今天 ...

  2. Java中值得注意的『运算符、逻辑控制、输入输出』

    目录 前言 一.运算符

  3. 毕业答辩ppt计算机科学与技术,计算机科学与技术专业论文答辩PPT范例.ppt

    计算机科学与技术专业论文答辩PPT范例.ppt 学号 20071460 姓名 专业 计算机科学与技术 计算机仿真F型结构电能表自动检测流水线 指导教师 F型结构电能表自动检测流水线 一 选题科学性陈述 ...

  4. c语言减少控制流变量,C语言 第3章 控制流 (1简单程序设计).ppt

    第三章 控制流 鹿豺绽身实滁盗猩毡佃聘配那好嚏桩执滴镍辱蓄填撂淬把俞袖未塘居补出C语言 第3章 控制流 (1简单程序设计)C语言 第3章 控制流 (1简单程序设计) 2 主要内容 学习三种结构的程序设 ...

  5. 暑假总结--新学期计划

    距离暑假结束只剩下2天了,仔细想想这个暑假过的还真是快.感觉我上一个暑假中期总结还没写完多久这就已经要开学了.乘着现在的闲暇时间,做一个暑假的后半段的复盘于,新学期的计划. 暑假总结 暑假后半段的学习 ...

  6. 计算机集中控制系统结构上和DCS基本一致,DCS工作原理及组成ppt课件

    <DCS工作原理及组成ppt课件>由会员分享,可在线阅读,更多相关<DCS工作原理及组成ppt课件(49页珍藏版)>请在人人文库网上搜索. 1.热工自动化的内容,自动检测 自动 ...

  7. 计算机科学与技术答辩ppt,计算机科学与技术专业论文答辩PPT范例.ppt

    计算机科学与技术专业论文答辩PPT范例.ppt 学号 20071460 姓名 专业 计算机科学与技术 计算机仿真F型结构电能表自动检测流水线 指导教师 F型结构电能表自动检测流水线 一 选题科学性陈述 ...

  8. 输入指定答案提示正确C语言,大学C语言课件及复习答案输入输出.ppt

    大学C语言课件及复习答案输入输出 C语言数据输入和输出 若变量c为char类型,能正确判断出c为小写字母的表达式是( ) A)′a′<=c<=′z′ B)(c>=′a′)||(c&l ...

  9. JavaSE语法(3)——【逻辑控制:各种分支循环语句】

    目录 前言 ✏️输入输出 1.输出到控制台 2.从键盘输入 ✏️顺序结构 ✏️分支结构 1.if语句 2.switch 语句 ✏️循环结构 1.while 循环 2.break与continue 3. ...

最新文章

  1. java which语句,java入门之表达式、语句、块
  2. node实战学习纪录
  3. QPainter中坐标系变换问题
  4. 图解iPhone开发新手教程
  5. 全国计算机等级考试题库二级C操作题100套(第08套)
  6. mysql 低端_mysql入门
  7. Codechef August Challenge 2018 : Coordinate Compression
  8. 特斯拉电动皮卡量产时间还会推迟 内部人士称已被推迟到2023年
  9. python实现web服务器_python实现web服务器
  10. Ubuntu下安装NetBeans步骤和相关问题的解决方法
  11. 文档打开后服务器报警,MetaTrader 4客户段的秘密:警报系统
  12. 男人动心的3种傻女孩[转载]
  13. 二进制文件转成文本保存,并可以读回
  14. KL距离(衡量两个概率分布的差异情况)
  15. 【Altium Designer10详细安装】
  16. Python获取京东商城的商品分类,并将分类保存到csv
  17. element-UI 图标点击切换
  18. 内边距padding
  19. 自习室图书馆座位预约小程序 开题报告(基于微信小程序毕业设计题目选题课题)
  20. Sass系统技术选型笔记(2)JBPM

热门文章

  1. DVWA之暴力破解漏洞
  2. 【AtCoder】AtCoder Grand Contest 046
  3. 机器学习(Machine Learning,ML)
  4. 当面试官问 promise 的时候,他们希望听到什么(二)
  5. word计算机桌面加密,Word文档怎么加密 保护Word文档就靠这4招
  6. 用WIN7装oracle10g的步骤
  7. python行业中性_单因子测试(上)——因子中性化
  8. 基于音乐/电影/图书的协同过滤推荐算法代码实现(基于用户推荐、基于项目推荐、基于SlopeOne算法推荐、基于SVD算法推荐、混合加权推荐)
  9. ios上webview与浏览器webview
  10. ENET库(可靠UDP)