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. CoCos2dx开发:PC端调试运行正常但打包apk文件后在手机上点击闪退

    记:今天调试时出现的一个PC端调试运行正常,但打包apk文件后在手机上点击闪退的问题. 可能在不同的情况条件下,会有不同的原因导致apk安装后闪退问题.拿android studio等软件来说,开发安 ...

  2. ThinkInJava之内部类

    一:内部类概述 将一个类的定义放在另一个类的内部,这就是内部类.内部类是Java一种非常有用的特征,因为他允许你把一些逻辑相关的数据组织在一起,并控制它的可见性. 二:内部类的创建 我们都知道类的创建 ...

  3. [IOI2007] sails 船帆

    显然答案与杆的顺序无关(按每个高度考虑). 从高到低考虑杆,设此时的状态为\(S\),\(S[i]\)是高度\(i\)的帆的数目,初始全为\(0\),当前杆的高度为\(h\),杆上需要放置的帆的数目为 ...

  4. Java面试题中的Redis大合集,所有你想找的都在这里!

    概述 Redis 是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库.缓存服务或消息服务使用.``` Redis 支持多种数据结构,包括字符串.哈希表.链表.集合.有序集合.位图.Hyperl ...

  5. nginx处理cookie跨域

    今天在部署公司项目的时候碰到一个问题 项目地址是xxx.xx.xx.122:7480 项目A后台请求地址为xxx.xx.xx.123:8080/data-sso 开始nginx配置是 server { ...

  6. 6.jQuery(实例)

    1.开关灯效果 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  7. C# Serialize

    一.序列化又称为串行化,是.NET运行时环境用来支持用户自定义类型的机制,目的是以某种存储给对象持久化,或者是将这种对象传输到另一个地方, 二. .NET框架提供了两种序列化的方式 一种是使用Bina ...

  8. jni c++

        java与c/c++之间的数据交互     JNI     上述两篇文章对jni的讲解比较详细,各有利弊,就文章1来说,开门见山,直接阐述了java和C/C++的交互方式:文章2是一篇百度文库 ...

  9. 简单的了解一下AQS吧

    什么是AQS AQS,即AbstractQueuedSynchronizer,是一套定义了多线程访问共享资源的同步器框架.在JDK的并发包中很多类都是基于AQS进行实现的,比如ReentrantLoc ...

  10. 版本管理工具Git(二)GitLab部署和配置

    安装 # 安装依赖包 sudo yum install -y curl policycoreutils-python openssh-server # 启用并启动SSHD sudo systemctl ...