@Tean
2015-12-30T13:19:43.000000Z
字数 4523
阅读 2326
Java
- Java语句有哪些结构
- 掌握分支结构
- 掌握
if语句的用法- 掌握
switch语句的用法- 掌握
键盘输入
Java语句结构有三种:
- 顺序结构:程序从上到下一行一行的执行代码,没有判断和跳转。
- 选择结构:根据条件的不同,指向不同的代码语句。
- 循环结构:程序可以循环的指向某些代码语句。
分支语句实现程序流程控制的功能,根据一定的条件有选择的执行或跳过特定语句。
Java中分支结构有两种:
- if语句
- switch语句
流程图:
语法:
if(条件) { // 条件的结果必须是boolean类型 <下同>// TODO 执行语句 PS:若此处只有一句代码时,可省略大括号,但建议不要省略。<下同>}
案例:
如果拉登的Java考试成绩大于等于90分,奥巴马就奖励拉登一个iPhone 6S Plus。
public static void main(String[] args) {int score = 98; // 用来存储拉登的Java成绩//int score = 28;if(score >= 90) {System.out.println("奥巴马奖励iPhone 6S Plus一个。");}}
练习:
如果拉登的Java成绩大于等于98分,并且SQL成绩大于等于80分,奥巴马奖励他水果机一个;或者Java成绩等于100分,SQL绩大于等于70分,奥巴马也可以奖励他。
流程图:
语法:
if(条件) {// TODO 执行语句} else {// TODO 执行语句}
案例:
如果拉登的Java考试成绩大于等于90分,奥巴马就奖励拉登一个iPhone 8S Plus;否则惩罚拉登一个月不能喝啤酒。
public static void main(String[] args) {int score = 98; // 用来存储拉登的Java成绩//int score = 28;if(score >= 90) {System.out.println("奥巴马奖励iPhone 8S Plus一个。");} else {System.out.println("惩罚一个月不能喝啤酒。");}}
练习:
如果福彩中了500万,我买车、资助希望工程、去欧洲旅游;
如果没中,我买下一期体彩,继续烧高香。
流程图:
语法:
if(条件) {// TODO 执行语句} else if(条件) {// TODO 执行语句} else if(条件) {// TODO 执行语句} else {// TODO 执行语句}/* 注意:* 1. else if 可以有多个* 2. 最后的else可以有也可以没有* 3.*/
案例:
我想买车,买什么车决定于我在银行有多少存款
如果我的存款超过500万,我就买宝马740;
如果我的存款超过100万,我就买帕萨特;
如果我的存款超过50万,我就买桑塔纳;
如果我的存款超过10万,我就买奥拓;
如果我的存款10万以下,我就买奇瑞QQ。
public static void main(String[] args) {int money = 320; // 用来存储存款if(money >= 500) {System.out.println("买宝马740");} else if(money >= 100) {System.out.println("买帕萨特");} else if(money >= 50) {System.out.println("买桑塔纳");} else if(money >= 10) {System.out.println("买奥拓");} else if(money < 10) {System.out.println("买奇瑞QQ");}}
思考:上述案例中多个条件的位置是否可以互换?
练习1:
奥巴马的考试成绩为score。如果:
score >=90时输出: "学霸实在牛"
score >=80时输出: "学神要加油"
score >=70时输出: "学民好害羞"
score >=60时输出: "学弱打酱油"
score < 60时输出: "学渣泪在流"
练习2:
如果今天是周一或周五,午餐就吃辣条炒月饼;
如果今天是周二,午餐就吃西红柿炒萝卜;
如果今天是周三或者周日,午餐就吃南瓜炒油条;
如果今天是周四或周六,午餐就吃鸡腿炒豆芽。
流程图:
语法:
if(条件) {if(条件) {// TODO 执行语句} else {// TODO 执行语句}} else {// TODO 执行语句}/* 注意:上述三种if语句可以任意嵌套 */
案例:
学校进行百米赛跑,如果10秒内(包括10秒)跑完需要进入下一场比赛,性别是男则进入男子组,性别是女则进入女子组;如果10秒没跑完,则直接淘汰。
public static void main(String[] args) {int s = 8; // 存储比赛所需时间char gender = '男';if(s <= 10) {if(gengder == '男') {System.out.println("恭喜,进入男子组!");} else if(gengder == '女'){System.out.println("恭喜,进入女子组!");} else {System.out.prinln("您的性别貌似有误!");}} else {System.out.println("不好意思,您被淘汰!");}}
思考:上述案例中如果性别gender是
String类型的话,会不会有问题,如果有问题的话如何解决?
练习:
登录操作:先判断用户名是否是admin,如果不是,则提示:用户名不存在;如果是admin,再判断密码是否是123456,如果是123456则提示:登录成功,欢迎拉登;否则提示:密码错误!
流程图:
语法:
switch(表达式) {case 常量1:// TODO 执行语句break;case 常量2:// TODO 执行语句break;... ...case 常量n:// TODO 执行语句break;[default:// TODO 执行语句break;]}
- 表达式的值必须是下列几种类型之一:
byteshortintcharenum(枚举,后面的课程会说)String(Java7新增)- case后面的常量值(常量1、常量2、...常量n)必须是常量值(或用final修饰的变量),case的值不能是一个范围。
- 所有case后的常量值不能有相同的,否则会编译出错。
- break关键字用来在执行完一个case后使程序退出switch结构,如果没有break,则程序会继续执行下去,直到遇到break或执行完switch结束。
- default子句是可选的,没必要的时候可以不加。
- default通常出现在最后,也可以出现在前面,当所有case都不匹配时才会执行,进入default之后如果没有break,则继续执行其他case
案列1:
大圣参加计算机编程大赛
如果获得第一名,将参加麻省理工大学组织的1个月夏令营
如果获得第二名,将奖励惠普笔记本电脑一部
如果获得第三名,将奖励移动硬盘一个
否则,不给任何奖励
int num = 3;switch(num) {case 1:System.out.println("参加麻省理工大学组织的1个月夏令营");break;case 2:System.out.println("奖励惠普笔记本电脑一部");break;case 3:System.out.println("奖励移动硬盘一个");break;default:System.out.println("不给任何奖励");break; // 此处的break可加可不加}
案列2:
如果今天是周一或周五,午餐就吃辣条炒月饼;
如果今天是周二,午餐就吃西红柿炒萝卜;
如果今天是周三或者周日,午餐就吃南瓜炒油条;
如果今天是周四或周六,午餐就吃鸡腿炒豆芽。
int day = 4;switch(day) {case 1:case 5:System.out.println("辣条炒月饼");break;case 2:System.out.println("西红柿炒萝卜");break;case 3:case 7:System.out.println("南瓜炒油条");break;case 4:case 6:System.out.println("鸡腿炒豆芽");break;}
练习1:
龙傲天为他的手机设定了自动拨号
按1:拨东海龙王的号
按2:拨太上老君的号
按3:拨元始天尊的号
按4:拨鸿钧老祖的号
练习2:
用switch实现:盘古的考试成绩为score。如果:
score >= 90时输出: "学霸实在牛"
score >= 80时输出: "学神要加油"
score >= 70时输出: "学民好害羞"
score >= 60时输出: "学弱打酱油"
score < 60时输出: "学渣泪在流"
- 相同点:
- 都是用来处理多分支条件的结构
- 不同点:
switch:只能处理等值条件判断的情况,而且条件必须是byte、short、int、char、enum、String(Java7新增)中的类型之一。多重if:没有switch选择结构的限制,特别适合某个变量处于某个连续区间的情况。
- 导包,以下两种任选其一。
import java.util.Scanner; // 只导入Scanner类import java.util.*; // 导入util包下所有类
- 创建Scanner对象。
Scanner in = new Scanner(System.in);
- 获取用户输入。
int num = in.nextInt(); // 获取int类型输入double price = in.nextDouble(); // 获取double类型输入String info = in.next(); // 获取String类型数据
- 案列:
import java.util.Scanner; // 导包public class Demo {public static void main(String[] args) {// 创建Scanner对象Scanner in = new Scanner(System.in);System.out.print("请输入您的姓名:");String name = in.next(); // 获取键盘输入System.out.print("请输入您的年龄:");int age = in.nextInt(); // 获取键盘上输入}}
- 根据用户定义的数值不同,打印对应的星期英文。
- 根据用户指定月份,打印该月份所属的季节:
3,4,5春季;6,7,8夏季;9,10,11秋季;12,1,2冬季。- 根据用户输入的符号不同,做两个数的运算(+、-、*、/)。
- 根据星期的不同,每日吃的菜也不同。
- 判断登录名和密码:如果用户名为老毛,密码是123,就输出您好老毛;否则输出,对不起,您不是老毛。
- 根据年龄和性别来决定能不能搬动桌子,如果(年龄大于7岁)或者(年龄大于等于5岁并且性别是男),就能搬动桌子,否则就是不能搬动桌子。
- 从控制台接收用户输入的一个5位数字,判断他是不是回文数,所谓回文数就是个位与万位相同,十位与千位相同,比如 12321 78387 23832。
- 从控制台接收用户输入的任意一个年份,计算该年是不是润年。