概述
文章目录
- 程序流程控制
- 练习题
- 笔试题
- 彩票
- 结婚判断
- switch-case结构的基本使用
- 练习题
程序流程控制
流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组
合成能完成一定功能的小逻辑模块。
• 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:
顺序结构
分支结构
循环结构顺序结构 程序从上到下逐行地执行,中间没有任何判断和跳转。
分支结构 根据条件,选择性地执行某段代码。 有if…else和switch-case两种分支语句。
循环结构 根据循环条件,重复性的执行某段代码。 有while、do…while、for三种循环语句。 注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素
顺序结构 Java中定义成员变量时采用合法的前向引用。如: public class Test{ int num1 = 12; int num2 = num1 + 2; } 错误形式: public class Test{ int num2 = num1 + 2; int num1 = 12; } 执行语句1 执行语句2 执行语句n … …
2.5.1 程序流程控制:顺序结构
2-5-2 分支语句1: if-else结构
if语句三种格式:
- if(条件表达式){ 执行代码块; }
- if(条件表达式){ 执行代码块1; } else{ 执行代码块2; }
条件表达式
执行代码块
true
false 条件表达式
执行代码块1 执行代码块2
true false
2.5.2 程序流程控制:if-else结构- if(条件表达式1){ 执行代码块1; } else if (条件表达式2){ 执行代码块2; } …… else{ 执行代码块n; }
条件表达式1
执行代码块1 true 条件表达式2
执行代码块2
true
false
false
… … 执行代码块n false
2.5.2 程序流程控制:if-else结构
条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量 语句块只有一条执行语句时,一对{}可以省略,但建议保留 if-else语句结构,根据需要可以嵌套使用 当if-else结构是“多选一”时,最后的else是可选的,根据需要可以省略 当多个条件是“互斥”关系时,条件判断语句及执行语句间顺序无所谓 当多个条件是“包含”关系时,“小上大下 / 子上父下”
2.5.2 程序流程控制:if-else结构
分支结构:if-else使用说明
if-else语句应用举例
public class AgeTest{ public static void main(String args[]){ int age = 75; if (age< 0) { System.out.println(“不可能!”); } else if (age>250) { System.out.println(“是个妖怪!”); } else { System.out.println(“人家芳龄 " + age +" ,马马乎乎啦!"); } } }
练习题
/*
岳小鹏参加Java考试,他和父亲岳不群达成承诺:
如果:
成绩为100分时,奖励一辆BMW;
成绩为(80,99]时,奖励一台iphone xs max;
当成绩为[60,80]时,奖励一个 iPad;
其它时,什么奖励也没有。
请从键盘输入岳小鹏的期末成绩,并加以判断说明:
else 结构是可选的。
针对于条件表达式:
如果多个条件表达式之间是“互斥”关系(或没有交集的关系),哪个判断和执行语句声明在上面还是下面,无所谓。
如果多个条件表达式之间有交集的关系,需要根据实际情况,考虑清楚应该将哪个结构声明在上面。
如果多个条件表达式之间有包含的关系,通常情况下,需要将范围小的声明在范围大的上面。否则,范围小的就没机会执行了。
*/import java.util.Scanner;
class IfTest {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);System.out.println("请输入岳小鹏期末成绩:(0-100)"); int score = scan.nextInt(); if(score == 100){ System.out.println("奖励一辆BMW");//be my wife! BMW <---> MSN }else if(score > 80 && score <= 99){ System.out.println("奖励一台iphone xs max"); }else if(score >= 60 && score <= 80){ System.out.println("奖励一个 iPad"); }else{ System.out.println("什么奖励也没有"); }
}
}
/*
编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,
对它们进行排序(使用 if-else if-else),并且从小到大输出。说明:
if-else结构是可以相互嵌套的。
如果if-else结构中的执行语句只有一行时,对应的一对{}可以省略的。但是,不建议大家省略。
*/
import java.util.Scanner;
class IfTest2 {
public static void main(String[] args) {Scanner scanner = new Scanner(System.in);
System.out.println(“请输入第一个整数:”);
int num1 = scanner.nextInt();
System.out.println(“请输入第二个整数:”);
int num2 = scanner.nextInt();
System.out.println(“请输入第三个整数:”);
int num3 = scanner.nextInt();if(num1 >= num2) //1>2
if(num3 >= num1)//2 1 3
System.out.println(num2 + “,” + num1 + “,” + num3);
else if(num3 <= num2) //321
System.out.println(num3 + “,” + num2 + “,” + num1);
else
System.out.println(num2 + “,” + num3 + “,” + num1);//231
}else{
if(num3 >= num2)//123
System.out.println(num1 + “,” + num2 + “,” + num3);
else if(num3 <= num1)//312
System.out.println(num3 + “,” + num1 + “,” + num2);
else
System.out.println(num1 + “,” + num3 + “,” + num2);//}
}
}
笔试题
class IfExer {
public static void main(String[] args) {
int x = 4;
int y = 1;
if (x > 2)
if (y > 2)
System.out.println(x + y);
//System.out.println(“atguigu”);
else //就近原则
System.out.println("x is " + x);//课后练习3:测算狗的年龄 int dogAge = 6; if(dogAge >= 0 && dogAge <= 2){ System.out.println("相当于人的年龄:" + dogAge * 10.5); }else if( dogAge > 2){ System.out.println("相当于人的年龄:" + (2 * 10.5 + (dogAge - 2) * 4)); }else{ System.out.println("狗狗还没出生呢!"); } //课后练习4:如何获取一个随机数:10 - 99 int value = (int)(Math.random() * 90 + 10);// [0.0,1.0) --> [0.0,90.0) --->[10.0, 100.0) -->[10,99] System.out.println(value); //公式:[a,b] : (int)(Math.random() * (b - a + 1) )+ a
}
}
我家的狗5岁了,5岁的狗相当于人类多大呢?其实,狗的前两年每 一年相当于人类的10.5岁,之后每增加一年就增加四岁。那么5岁的狗 相当于人类多少年龄呢?应该是:10.5 + 10.5 + 4 + 4 + 4 = 33岁。
package work.com.cn.entity; import java.util.Scanner; public class IfExer { public static void main(String[] args) { System.out.println("请输入狗狗的年龄(0~100):"); Scanner scanner = new Scanner(System.in); int dogAge = scanner.nextInt(); if(dogAge <= 2){//狗的前两年每 一年相当于人类的10.5岁 System.out.println("相当于人类年龄:"+dogAge*10.5); }else if(dogAge > 2){//之后每增加一年就增加四岁。那么5岁的狗 相当于人类多少年龄呢? System.out.println("相当于男的年龄"+(2*10.5+(dogAge-2)*4)); }else { System.out.println("可爱的狗狗还没有降生呢?"); } } }
彩票
结婚判断
/* 大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件: 高:180cm以上;富:财富1千万以上;帅:是。 如果这三个条件同时满足,则:“我一定要嫁给他!!!” 如果三个条件有为真的情况,则:“嫁吧,比上不足,比下有余。” 如果三个条件都不满足,则:“不嫁!” */ import java.util.Scanner; class Marry { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入你的身高:(cm)"); int height = scan.nextInt(); System.out.println("请输入你的财富:(千万)"); double wealth = scan.nextDouble(); /* 方式一: System.out.println("请输入你是否帅:(true/false)"); boolean isHandsome = scan.nextBoolean(); if(height >= 180 && wealth >= 1 && isHandsome){ System.out.println("我一定要嫁给他!!!"); }else if(height >= 180 || wealth >= 1 || isHandsome){ System.out.println("嫁吧,比上不足,比下有余。"); }else{ System.out.println("不嫁!"); } */ //方式二: System.out.println("请输入你是否帅:(是/否)"); String isHandsome = scan.next(); if(height >= 180 && wealth >= 1 && isHandsome.equals("是")){ System.out.println("我一定要嫁给他!!!"); }else if(height >= 180 || wealth >= 1 || isHandsome.equals("是")){ System.out.println("嫁吧,比上不足,比下有余。"); }else{ System.out.println("不嫁!"); } } }
switch-case结构的基本使用
switch(表达式){
case 常量1:
语句1
; // break;
case 常量2:
语句2;
// break; … …
case 常量N:
语句N; //
break;
default: 语句;
// break;
}
package work.com.cn.entity; /* 分支结构之二:switch-case 1.格式 switch(表达式){ case 常量1: 执行语句1; //break; case 常量2: 执行语句2; //break; ... default: 执行语句n; //break; } 2.说明: ① 根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。 当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构 末尾结束为止。 ② break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构 ③ switch结构中的表达式,只能是如下的6种数据类型之一: byte 、short、char、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增) ④ case 之后只能声明常量。不能声明范围。 ⑤ break关键字是可选的。 ⑥ default:相当于if-else结构中的else. default结构是可选的,而且位置是灵活的。 */ public class SwitchCase { public static void main(String[] args) { int number =1; switch(number){ case 0: System.out.println("zero"); case 1: System.out.println("one"); break; case 2: System.out.println("two"); break; case 3 : System.out.println("third"); break; default: } } }
练习题
1.使用 switch 把小写类型的 char型转为大写。只转换 a, b, c, d, e. 其它的输 出 “other”
package work.com.cn.entity;
import java.util.Scanner;
//1.使用 switch 把小写类型的 char型转为大写。只转换 a, b, c, d, e. 其它的输 出 “other”。
public class SwitchChar {
public static void main(String[] args) {
System.out.println("请输入值你想要的值");
Scanner scanner = new Scanner(System.in);
//键盘上不能输入char类型的数据,只能通过输入字符串的形式,截取第一个字符来实现
char charValue = scanner.next().charAt(0);
switch (charValue) {
case 'a':
System.out.println("A");
break;
case 'b':
System.out.println("B");
break;
case 'c':
System.out.println('C');
break;
case 'd':
System.out.println("D");
break;
case 'e':
System.out.println('E');
break;
default:
System.out.println("other");
break;
}
}
}
/*
例题:对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格”。
说明:如果switch-case结构中的多个case的执行语句相同,则可以考虑进行合并。
*/
class SwitchCaseTest1 {
public static void main(String[] args) {
/*
int score = 78;
switch(score){
case 0:
case 1:
case 2:
...
case 100:
}
*/
/*
int score = 78;
if(score >= 60){
}else{
}
*/
int score = 78;
switch(score / 10){
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("不及格");
break;
case 6:
case 7:
case 8:
case 9:
case 10:
System.out.println("及格");
break;
}
//更优的解决方案:
switch(score / 60){
case 0:
System.out.println("不及格");
break;
case 1:
System.out.println("及格");
break;
}
}
}
最后
以上就是细腻刺猬为你收集整理的学习 尚硅谷_宋红康_第2章_Java基本语法(下):程序流程控制超详细课件的全部内容,希望文章能够帮你解决学习 尚硅谷_宋红康_第2章_Java基本语法(下):程序流程控制超详细课件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复