package cn.temptation;

 public class Sample01 {
public static void main(String[] args) {
// 程序的流程控制(流程结构):顺序结构、选择结构、循环结构 // 顺序结构:从上向下,顺序执行
System.out.println("出生...");
System.out.println("享受人生...");
System.out.println("挂了...");
}
}
 package cn.temptation;

 public class Sample02 {
public static void main(String[] args) {
// 选择结构:1、if语句块; 2、switch语句块 // if语句块 // 形式1、if(比较表达式) { ... }
int i = 2; // if (i != 3) {
// System.out.println(i);
// } // 注意:
// 1、比较表达式的结果必须是一个boolean类型的值
// 2、if语句如果不使用大括号,语法上可以;但是不使用大括号,if语句块只会影响其后的一行语句 // if (i != 3)
// System.out.println(i); // 下面执行结果为2,3
// if (i != 3) {
// System.out.println(i);
// System.out.println(++i);
// } // 下面执行结果为2,3
// if (i != 3)
// System.out.println(i);
// System.out.println(++i); // 下面执行无结果
// if (i == 3) {
// System.out.println(i);
// System.out.println(++i);
// } // 下面执行结果为3,从执行结果得知,if无大括号的语句块后的第二行语句开始,就不再受if语句块的影响
if (i == 3)
System.out.println(i);
System.out.println(++i);
}
}
 package cn.temptation;

 public class Sample03 {
public static void main(String[] args) {
// 形式2、if(比较表达式) { ... } else { ... }
int i = 2;
int j = 3; if (i == j) {
System.out.println("i等于j");
} else {
System.out.println("i不等于j");
} // 联想一下,这种形式的if结构(if...else结构)和 三元运算符的效果差不多
}
}
 package cn.temptation;

 import java.util.Scanner;

 public class Sample04 {
public static void main(String[] args) {
// 需求:使用if...else...结构获取通过键盘录入的三个数字中最大的一个 // 声明三个变量来接收键盘录入的数字
Scanner input = new Scanner(System.in);
// 一行中声明多个变量
int i, j, k;
System.out.println("输入第一个数字:");
i = input.nextInt();
System.out.println("输入第二个数字:");
j = input.nextInt();
System.out.println("输入第三个数字:");
k = input.nextInt();
input.close(); // 使用if...else...结构比较这三个数字
int temp = 0;
int max = 0; // // 写法1、分步操作
// // ① 先把i、j进行比较得出较大的一个赋值给临时变量temp
// if (i > j) {
// temp = i;
// } else {
// temp = j;
// }
//
// // ② 再把temp、k进行比较得出最大的一个赋值给最终变量max
// if (temp > k) {
// max = temp;
// } else {
// max = k;
// } // 写法2、if...else...的嵌套
if (i > j) {
// 满足该条件时,说明i是i、j中较大的
if (i > k) {
max = i;
} else {
max = k;
}
} else {
// 满足该条件时,说明j是i、j中较大的
if (j > k) {
max = j;
} else {
max = k;
}
} System.out.println("输入的数字为:" + i + "," + j + "," + k + "中,最大的一个数字为:" + max);
}
}
 package cn.temptation;

 public class Sample05 {
public static void main(String[] args) {
// 形式3
// if(比较表达式) { ... }
// else if(比较表达式) { ... }
// else if(比较表达式) { ... }
// ...
// else { ... }
// 执行时,依次判断每一个比较表达式是否为true,如果为true,就执行该if语句块中的内容 // 注意:else if之间有一个空格 int i = 2; // if (i == 3) {
// System.out.println("i等于3");
// } else if (i == 5) {
// System.out.println("i等于5");
// } else {
// System.out.println("i等于其他值");
// } // 注意:如果多个比较表达式均为true(多个条件均成立),那么会执行第1个为true的if语句块中的内容
// 后续为true的if语句块不会再走入了
// if (i < 3) {
// System.out.println("i小于3");
// } else if (i < 5) {
// System.out.println("i小于5");
// } else {
// System.out.println("i等于:" + i);
// } if (i < 5) {
System.out.println("i小于5");
} else if (i < 3) {
System.out.println("i小于3");
} else {
System.out.println("i等于:" + i);
}
}
}
 package cn.temptation;

 import java.util.Scanner;

 public class Sample06 {
public static void main(String[] args) {
// 需求:根据键盘录入的数字,判断输入的数字为奇数还是偶数?(分别使用if结构 和 三元运算符实现)
Scanner input = new Scanner(System.in);
System.out.println("输入一个数字:");
int i = input.nextInt();
input.close(); // 写法1、使用if结构
// if (i % 2 == 0) {
// System.out.println("该数为偶数");
// } else {
// System.out.println("该数为奇数");
// } // 写法2、三元运算符
// 因为三元运算符 和 if...else...结构的相近,考虑直接把if...else结构中的语句放到三元运算符中,这是生搬硬套,语法出错
// (i % 2 == 0) ? (System.out.println("该数为偶数")) : (System.out.println("该数为奇数")); // 变通写法1、本质上和写法1是一样的
// boolean result = (i % 2 == 0) ? true : false;
// if (result) {
// System.out.println("该数为偶数");
// } else {
// System.out.println("该数为奇数");
// } // 变通写法2、纯粹使用三元运算符
// 根据是否为偶数获取相应的字符串
String msg = (i % 2 == 0) ? "该数为偶数" : "该数为奇数";
// 输出字符串的内容
System.out.println(msg);
}
}
 package cn.temptation;

 import java.util.Scanner;

 public class Sample07 {
public static void main(String[] args) {
// 需求:根据键盘录入的分数数字,判断输入的分数是优秀(90~100)、良好(80~89)、及格(60~79)、不及格(0~59)
Scanner input = new Scanner(System.in);
System.out.println("输入一个分数:");
int score = input.nextInt();
input.close(); // 下句表示范围的写法是错误的,画个数轴看一下
// if (score >= 90 || score <= 100) {
if (score >= 90 && score <= 100) {
System.out.println("优秀");
} else if (score >= 80 && score <= 89) {
System.out.println("良好");
} else if (score >= 60 && score <= 79) {
System.out.println("及格");
} else if (score >= 0 && score <= 59) {
System.out.println("不及格");
} else {
System.out.println("输入的分数应该在【0~100】之间");
} // 注意:仔细看看需求,其实隐含了一个条件:即分数的范围是在0~100之间
}
}
 package cn.temptation;

 import java.util.Scanner;

 public class Sample08 {
public static void main(String[] args) {
// 需求:根据键盘录入的月份数字,判断是哪一个季节?(3~5月为春季,6~8月为夏季,9~11月为秋季,12~2月为冬季)
Scanner input = new Scanner(System.in);
System.out.println("输入一个月份:");
int month = input.nextInt();
input.close(); // 写法1
if (month >= 3 && month <= 5) {
System.out.println("Spring");
} else if (month >= 6 && month <= 8) {
System.out.println("Summer");
} else if (month >= 9 && month <= 11) {
System.out.println("Autumn");
// 下句写法没有满足条件的数字
// } else if (month >= 12 && month <= 2) {
} else if (month == 12 || month == 1 || month == 2) {
System.out.println("Winter");
} else {
System.out.println("输入的月份应该在【1~12】之间");
} // 写法2
int result = month / 3; if (month == 0 || month == 13 || month == 14 || result < 0 || result > 4) {
System.out.println("输入的月份应该在【1~12】之间");
} else if (result < 1) {
System.out.println("Winter");
} else if (result < 2) {
System.out.println("Spring");
} else if (result < 3) {
System.out.println("Summer");
} else if (result < 4) {
System.out.println("Autumn");
} else {
System.out.println("Winter");
} // 编写代码及测试时,要充分考虑,特别是边界值,考虑时不要遗漏
}
}
 package cn.temptation;

 public class Sample09 {
public static void main(String[] args) {
// 选择结构:switch结构 // switch (变量) {
// case 值1:
// break;
// case 值2:
// break;
// ...
// case 值n:
// break;
// default:
// break;
// } // 注意:
// 1、switch后括号中的内容有一些限制:byte、short、int、long、char
// JDK 5后可以使用枚举;JDK 7后可以使用字符串类型
// 2、case:后面的值拿来和switch括号中的内容进行比较的,当比较结果为true时,会执行该case语句块中的内容
// 3、break:英文是中断的意思,也就是说后续都不做了,作用范围到switch右侧的大括号为止
// 4、default:英文是默认的意思,如果case条件的值都不能匹配switch括号中的值,那么执行default语句块中的内容
// 5、switch结构中可以没有default部分,但是要求加上default部分
// 6、switch结构中可以只有default部分,表示默认就执行该default语句块中的内容 int i = 2; switch (i) {
case 1:
System.out.println("i等于1");
break;
case 2:
System.out.println("i等于2");
break;
case 3:
System.out.println("i等于3");
break;
default:
System.out.println("i等于其他值");
break;
} System.out.println("这里不会收到switch结构中的break语句的影响"); switch (i) {
default:
System.out.println("switch结构中只有default部分");
break;
}
}
}
 package cn.temptation;

 import java.util.Scanner;

 public class Sample10 {
public static void main(String[] args) {
// 注意:
// 1、case部分的值不能重复,否则有语法错误:Duplicate case
// 2、default部分不是非得放在switch结构中的最后,可以放在任何和case同级的位置,只是习惯性的放在最后
// 3、放在最后的default部分,可以不写break语句,但是建议写上 // 需求:根据键盘录入的数字,使用switch结构判断是星期几
Scanner input = new Scanner(System.in);
System.out.println("输入一个数字作为星期几:");
int weekDay = input.nextInt();
input.close(); switch (weekDay) {
// default部分可以放在switch结构的最前端
// default:
// System.out.println("输入不正确");
// break;
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
// default部分可以放在switch结构的任意位置
// default:
// System.out.println("输入不正确");
// break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
default:
System.out.println("输入不正确");
// 写在最后的default部分中的break语句可以省略不写
// break;
}
}
}
 package cn.temptation;

 public class Sample11 {
public static void main(String[] args) {
// switch结构在JDK 7后支持字符串,case后就可以使用字符串
String course = "Java"; switch (course) {
case "Android":
System.out.println("Android是主流的移动开发平台");
break;
case "Java":
System.out.println("Java真简单");
break;
case "MySQL":
System.out.println("MySQL是主流的数据库");
break;
default:
System.out.println("想混口饭吃,总得会一样!");
break;
}
}
}
 package cn.temptation;

 public class Sample12 {
public static void main(String[] args) {
// 特别注意:
// switch结构中,case部分需要结合break语句使用,如果只写case部分不写其相应的break语句,会发生"case击穿"现象
// 如果case部分没有相应的break语句,当该case条件满足时,执行该case部分的语句内容,并一直向下执行(无视其他case条件),直到遇见break为止
// 如果一直没有遇见break,以switch右侧的大括号(switch结构作用域右侧的边界)作为执行结束的依据 int i = 2; switch (i) {
case 1:
System.out.println("i等于1");
break;
case 2:
System.out.println("i等于2");
case 3:
System.out.println("i等于3");
// break;
default:
System.out.println("i等于其他值");
break;
} System.out.println("这里会不会被执行到?");
}
}
 package cn.temptation;

 public class Sample13 {
public static void main(String[] args) {
int i = 2; // 问题1
// switch (i) {
// default:
// i++;
// break;
// case 2:
// ++i;
// break;
// case 3:
// ++i;
// break;
// case 4:
// ++i;
// break;
// }
//
// System.out.println(i); // 3 // default部分放在switch结构的最前面,也不会第一个执行,也优先匹配case条件 // 问题2
switch (i) {
default:
i++;
case 3:
++i;
case 4:
++i;
} System.out.println(i);
}
}
 package cn.temptation;

 import java.util.Scanner;

 public class Sample14 {
public static void main(String[] args) {
// 需求:根据键盘录入的数字,判断是什么季节?(分别使用if结构 和 switch结构)
Scanner input = new Scanner(System.in);
System.out.println("输入一个月份:");
int month = input.nextInt();
input.close(); // 写法1、if结构
if (month >= 3 && month <= 5) {
System.out.println("Spring");
} else if (month >= 6 && month <= 8) {
System.out.println("Summer");
} else if (month >= 9 && month <= 11) {
System.out.println("Autumn");
} else if (month == 12 || month == 1 || month == 2) {
System.out.println("Winter");
} else {
System.out.println("输入的月份应该在【1~12】之间");
} // 写法2、switch结构
// switch (month) {
// case 1:
// System.out.println("Winter");
// break;
// case 2:
// System.out.println("Winter");
// break;
// case 3:
// System.out.println("Spring");
// break;
// case 4:
// System.out.println("Spring");
// break;
// case 5:
// System.out.println("Spring");
// break;
// case 6:
// System.out.println("Summer");
// break;
// case 7:
// System.out.println("Summer");
// break;
// case 8:
// System.out.println("Summer");
// break;
// case 9:
// System.out.println("Autumn");
// break;
// case 10:
// System.out.println("Autumn");
// break;
// case 11:
// System.out.println("Autumn");
// break;
// case 12:
// System.out.println("Winter");
// break;
// default:
// System.out.println("输入的月份应该在【1~12】之间");
// break;
// } // 因为switch结构中的很多case条件都做的是相同的事情,所以考虑优化一下写法
// 考虑把做相同事情的case条件合并到一起,使用case击穿,这样可以省略一些重复的代码
switch (month) {
case 12:
case 1:
case 2:
System.out.println("Winter");
break;
// 下句写法语法错误:The operator || is undefined for the argument type(s) int, int
// case 3 || 4 || 5:
case 3:
case 4:
case 5:
System.out.println("Spring");
break;
case 6:
case 7:
case 8:
System.out.println("Summer");
break;
case 9:
case 10:
case 11:
System.out.println("Autumn");
break;
default:
System.out.println("输入的月份应该在【1~12】之间");
break;
}
}
// if结构 和 switch结构的区别:
// 1、if结构的括号内使用的是比较表达式,得到的结果是boolean类型的值
// 2、switch结构的case后面跟的是用来匹配的值 // if结构 和 switch结构的选择:
// 1、if结构用于条件描述的范围比较大的场合
// 2、switch结构用于少量的有特定的值进行比较的场合
}

【原】Java学习笔记005 - 流程控制的更多相关文章

  1. 【原】Java学习笔记007 - 流程控制

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // for循环 // ...

  2. 【原】Java学习笔记006 - 流程控制

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:写一万次&q ...

  3. Java学习笔记五——流程控制

    分支结构 Java提供了两种常见的分支控制结构:if语句和switch语句. if语句 if语句使用布尔值或布尔表达式(表达式结果为布尔值),if语句有3中形式: 第一种形式: if (5 > ...

  4. Java学习笔记之---流程控制语句

    Java学习笔记之---流程控制语句 (一)循环语句 (1)if语句 if(布尔表达式){ //如果布尔表达式为true将执行的语句 } if(i%2!=0){ System.out.println( ...

  5. Python学习笔记 - day4 - 流程控制

    Python流程控制 Python中的流程控制主要包含两部分:条件判断和循环. Python的缩进和语法 为什么要在这里说缩进和语法,是因为将要学习的条件判断和分支将会涉及到多行代码,在java.c等 ...

  6. PYTHON 学习笔记2 流程控制工具以及函数定义、匿名函数

    前言 在上一节的学习中.已经介绍了几种基本类型.包括字符串的定义,以及字符串中索引.切片.字符串拼接的使用方法.以及基本的整形数据运算.一些之前都没有了解过的运算符.比如 ** 乘方 //整数除法等. ...

  7. JavaSE学习笔记03流程控制

    Java流程控制 1.顺序结构 java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句往下执行. 顺序结构是最简单的算法结构,它是任何一个算法都离不开的一种基本算法结构. 2. 选择结构 ...

  8. C#学习笔记_04_流程控制

    04_流程控制 程序的执行结构: 顺序结构 分支结构 循环结构 可以通过某些特定的控制语句来控制代码的执行结构 分支流程控制 if else 基本语法 可以只有if没有else,但是不能没有if只有e ...

  9. 0039 Java学习笔记-多线程-线程控制、线程组

    join线程 假如A线程要B线程去完成一项任务,在B线程完成返回之前,不进行下一步执行,那么就可以调用B线程的join()方法 join()方法的重载: join():等待不限时间 join(long ...

随机推荐

  1. Python数据挖掘(爬虫强化)

    (我喜欢雨天,因为雨天我可以回到童年踩水花!哈!) 2018年 --7月--12日 : 多云又暴雨 T—T 前言 我要把爬虫的终极利器介绍一下,这个只要是我们肉眼能看到的,就算在源码中或者在json中 ...

  2. JVM学习笔记:对象的创建

    第一步,类检测 1.当虚拟机遇到一条new指令时,首先判断new的对象是否能在运行时常量池中找到对应类的类名(书中原话:检查这个指令的参数能佛在常量池中定位到一个类的符号引用).如果没找到,应该就会抛 ...

  3. python之高阶函数和匿名函数

    map() map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回. def func(x): return ...

  4. 14.Git分支-rebase有趣的例子、变基带来的问题及解决方案

    1.有趣的变基例子 如下图所示,你创建了一个特性分支server,然后进行了一些提交(C3和C4),然后又从C3上创建了特性分支client,提交了C8和C9,最后你又回到了server,提交了C10 ...

  5. Android 普通通知栏新方法,现在需要创建通知渠道才可以

    先看看效果看看是不是你想要的 点击后 话不多所,贴代码 xml文件: <?xml version="1.0" encoding="utf-8"?>& ...

  6. MySQL查看表占用空间大小

    需求:我们在选购服务器硬盘时,通常需要先估算一下数据量.比如我们现在做的项目,百万级用户,然后在现有的数据结构中插入一万条数据,然后根据相应的需求去计算出实际生产中的数据量. 前言:在mysql中有一 ...

  7. Python爬虫入门教程 5-100 27270图片爬取

    27270图片----获取待爬取页面 今天继续爬取一个网站,http://www.27270.com/ent/meinvtupian/ 这个网站具备反爬,so我们下载的代码有些地方处理的也不是很到位, ...

  8. java.lang.OutOfMemoryError: unable to create new native thread问题排查以及当前系统最大进程数量

    1. 问题描述 线上某应用出问题,查看日志 这一组服务器是2台,每台都有.配置为64G,使用7G,空余内存非常多 2. 问题排查 环境变化:程序迁移到新机器,新机器是CentOS 7,程序运行账号由原 ...

  9. Chapter 5 Blood Type——10

    "What?" “什么?” "Your boyfriend seems to think I'm being unpleasant to you — he's debat ...

  10. opensuse使用zypper安装软件

    安装软件(opensuse) opensuse 通过zypper可以方便的进行软件管理,类似centos的yum 软件. 命令参考 软件包操作 搜索软件 zypper search package 安 ...