分支语句
第一节:程序基本结构
- 顺序结构
- 选择结构
- 循环结构
1.1 顺序结构
程序从上到下一行一行的执行代码,没有判断和中转。
[外链图片转存失败(img-n3bnR0eA-1562642826624)(images/a.PNG)]
1.2 选择结构
有选择性的执行或者跳过指定代码
[外链图片转存失败(img-Z79nr0Qi-1562642826626)(images/分支.PNG)]
1.3 循环结构
重复执行一段代码,直到条件不成立。
[外链图片转存失败(img-HbtC9Qmr-1562642826626)(images/循环.PNG)]
Java的选择结构使用选择语句来实现:
1 if语句
2 switch语句
第二节:if语句
if语句有四种使用形式:
if ( 条件 ) {
//代码块
}
[外链图片转存失败(img-tFxWBPKn-1562642826627)(images/001.png)]
示例1:java成绩如果大于60,奖励一颗糖
//简单的if语句:
//成绩如果大于60 给奖励
int score = 10;
if(score>60){
System.out.println("给颗糖");
}
示例2:Java成绩大于98分,而且Html成绩大于80分,老师奖励他;或者Java成绩等于100分,Html成绩大于70分,老师也可以奖励他。
if((score1 >98 && score2 > 80 ) || ( score1 == 100 && score2 > 70 )){
//奖励
}
2.2 if-else语句
if ( 条件 ) {
//代码块1
}else{
//代码块2
}
[外链图片转存失败(img-N3v7j59m-1562642826627)(images/002.png)]
示例1:如果是男生就永远18岁,否则永远16岁。
// 如果是男生 就永远18岁
// 如果是 女生 永远16岁
char c = '女';
if(c == '男'){// boolean 结果是true 执行if中 否则执行else中的
System.out.println("永远18岁");
}else{
System.out.println("永远16岁");
}
上机练习1:买彩票
如果体彩中了500万,我买车、买房、非洲旅游
如果没中,继续买。
public static void main(String[] args){
//1创建input对象
Scanner input=new Scanner(System.in);
//2提示
System.out.println("中500万吗?Y/N");
String answer=input.next();
//3判断
if(answer.equals("y")){ //字符串的判断使用equals方法
System.out.println("买房、买车、欧洲旅游...");
}else{
System.out.println("继续买....");
}
}
注意:字符串的判断使用equals方法
上机练习2:输入四位数字的会员号的百位数字等于产生的随机数字即为幸运会员,提示恭喜您中奖了,否则没中奖。
提示: int random=(int)(Math.random()*10); //随机数
注意:Math.random();产生0-1之间的一个数字,含0不含1
public static void main(String[] args){
//创建Input对象
Scanner input=new Scanner(System.in);
//提示
System.out.println("请输入四位的会员号:");
int member=input.nextInt();
//百位
int bai=member/100%10;
int ran=(int)(Math.random()*10); //Math.random();产生0-1之间的一个数字,含0不含1
if(bai==ran){
System.out.println("中奖了....旅游去吧");
}else{
System.out.println("好好干活...");
}
}
2.3 多重if语句
if ( 条件1) {
//代码块1
}
else if (条件2) {
//代码块2
}
…
else {
//代码块3
}
示例1:如果成绩大于90并且是男生就送个女朋友,成绩大于90并且是女生送个男朋友,否则…
char c = '女';
int score = 10;
if(score>90 && c=='男'){
System.out.println("给送个女朋友");
}else if(score>90 && c=='女'){
System.out.println("给送个男朋友");
}else{
System.out.println("啥都没有,自己买");
}
上机练习 1:
我想买车,买什么车决定于我在银行有多少存款
如果我的存款超过500万,我就买保时捷
否则,如果我的存款超过100万,我就买宝马
否则, 如果我的存款超过50万,我就买帕萨特
否则, 如果我的存款超过10万,我就买qq
否则, 如果我的存款10万以下 ,我买捷安特
注意:在多重语句中,如果是区间判断,大的区间在前面,小的区间在后面
2.4 嵌套if语句
if(条件1) {
if(条件2) {
代码块1
} else {
代码块2
}
} else {
代码块3
}
示例:如果成绩大于90 如果是男生 送个女朋友, 如果是女生送个男朋友
// 如果成绩大于90 如果是男生 如果是女生
int score = 10;
if(score>90){
if(c=='男'){
System.out.println("给送个女朋友");
}else{
System.out.println("给送个男朋友");
}
}
2.5 特殊的if语句(不推荐使用)
// 特殊形式
// 必须要求 if 或者 else 语句中只能有一条语句
if(score>60)
System.out.println("好学生");
else
System.out.println("给送个女朋友");
上机练习1:输入四个季节:如果春天,输出“春暖花开”,如果是夏天,输出“夏日炎炎”,如果是秋天,则输出"秋高气爽",如果是冬天,则输出"安静祥和"。
// 1
import java.util.Scanner;
class Demo8
{
public static void main(String[] args)
{
// == 判断基本数据类型内容是否相等
// 引用数据类型 == 判断内存地址
// 判断内容 String 类型 判断内容 equals
Scanner sc = new Scanner(System.in);
String str = sc.next();
// boolean falg= str.equals("春天");
if(str.equals("春天")){
System.out.println("春暖花开");
}else if(str.equals("夏天") ){
System.out.println("夏日炎炎");
}else if(str.equals("秋天")){
System.out.println("秋高气爽");
}else if(str.equals("冬天")){
System.out.println("安静祥和");
}
}
}
第三节: switch语句
3.1 switch语法规则
- 表达式expr的值必须是下述几种类型之一:
byte、short、int、char、enum(枚举);java7之后可以是String。
- case子句中的值const 必须是常量值(或final的变量),case中的值不能是一个范围
- 所有case子句中的值应是不同的,否则会编译出错;
- default子句是可选的(不是必须的)
- break语句用来在执行完一个case分支后使程序跳出switch语句块;否则会继续执行下去
3.2语法格式
switch(表达式expr){
case const1:
statement1;
break;
case const2:
statement2;
break;
… …
case constN:
statementN;
break;
default:
statement_dafault;
break;
}
3.3 执行顺序:
1 判断有没有满足 case 的情况,如果满足则执行,如果所有的 case 都不满足需求的时候 执行default中的内容
2 break 帮助跳出switch 语句, 如果执行过程中 没有遇到break 继续向下执行直到遇到break为止
3.4 练习:
练习一: 简单实现switch语句
int i = 1;
switch(i){
case 1:
System.out.println("Hello World!");
break;
case 2:
System.out.println("Hello World!2");
case 3:
System.out.println("Hello World3");
break;
default:
System.out.println("Haaaa");
break;
}
练习二: 判断 春夏秋冬
Scanner sc = new Scanner(System.in);
String str = sc.next();
switch(str){
case "春天":
System.out.println("春暖花开");
break;
case "夏天":
System.out.println("闷热");
break;
case "秋天":
System.out.println("秋高气爽");
break;
case "冬天":
System.out.println("滴水成冰");
break;
default:
System.out.println("火星的");
break;
}
练习三: 需求: 利用switch实现一个计算器操作
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个操作数:");
int a = sc.nextInt();
System.out.println("请输入运算符");
String str = sc.next();
System.out.println("请输入第二个操作数:");
int b = sc.nextInt();
switch(str){
case "+":
System.out.println(a+"+"+b+"="+(a+b));
break;
case "-":
System.out.println(a+"-"+b+"="+(a-b));
break;
case "*":
System.out.println(a+""+b+"="+(ab));
break;
case "/":
System.out.println(a+"/"+b+"="+(a/b));
break;
case "%":
System.out.println(a+"%"+b+"="+(a%b));
break;
}
3.5 特殊用法 :case穿透
case穿透: 产生这种现象的原因:由于某个case语句中缺少或者漏写break语句所导致的结果.
// 需求: 打印输出指定的月份的天数
Scanner sc = new Scanner(System.in);
int month = sc.nextInt();
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("31天");
break;
case 2:
System.out.println("28天");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println("30天");
break;
}
System.out.println("Hello World!");
}
多重if和switch的区别
1 都可以处理多分支情况
2 多重if适合做区间判断,switch适合等值判断
总结
1 程序三种基本结构
顺序结构
选择结构
循环结构
java 选择结构:
if
使用形式
if(条件){…}
if(条件){…} else{…}
if(条件){…} else if(条件){…}else if(条件){…} else{…}
if(条件){ … if(条件){…} } else{…}
switch :等值判断
switch(变量表达式){
case 常量1:
…
break;
case 常量2:
…
break;
}
变量类型:byte short int char String 枚举
case 常量不能重复
default 可以省略
break 不要省略,如果省略会出现case穿透