提纲:
1、程序的流程结构
2、选择结构
3、if语句
4、switch-case语句
5、作业
程序的流程结构
程序的流程结构:
A:顺序结构:默认的,从上向下,逐行的执行。
B:选择结构:条件满足,某些代码才会执行。
C:循环结构:条件满足,某些代码会反复多次的执行。直到条件不满足。
选择结构:条件满足,某些代码才会执行。靠分支语句来实现。
语法结构:
if(条件:boolean){
//条件成立,执行此处的代码
}
执行流程:
示例代码:
public class Test1BaseIf
{
public static void main(String[] args)
{
/*
if语句的语法
if(条件:boolean){
//条件成立,执行此处的代码
}
if(true){
//才会执行
}
*/
//例1.判断一个成绩,如果是100,打印一句恭喜话
double score = 98.0;
if(score == 100.0){
//条件成立,执行此处的代码
System.out.println("恭喜你啊,满分,好厉害。。。");
}
//2.练习题1:给定一个年龄,如果大于18岁,打印出,你已经是个大人了,要对自己负责
int age = 24;
if(age >= 18){
System.out.println(age + "岁了,你已经是个大人了,要对自己负责");
}
System.out.println("main...over....");
}
}
语法格式:
if(条件:boolean){
//条件成立,执行此处的代码
}else{
//条件不成立,执行此处的代码
}
实现二者必选其一。
示例代码:
import java.util.Scanner;
public class Test2IfElse
{
public static void main(String[] args)
{
/*
if ... else的语法
if(条件表达式:boolean){
//条件成立,执行此处的代码
}else{
//条件不成立,执行此处的代码
}
*/
//例1:给定一个成绩,如果大于等于60分,打印及格, 否则打印不及格
int score = 66;
if(score >= 60){
//条件成立,执行此处的代码
System.out.println("及格啦。。");
}else{
//条件不成立,执行此处的代码
System.out.println("不及格了,呜呜。。");
}
//课堂练习1:判断成绩是否满分,如果满分,奖励一部手机,否则代码抄100遍。
if(score == 100){
System.out.println("满分啊,好厉害,奖励一部手机,啦啦啦。。");
}else{
System.out.println("考试没打100分,那么代码抄写100遍。。");
}
//课堂练习2:给定一个性别,如果是男,就去男厕所,否则去女厕所。。
/*
思路:
step1:有个性别这个变量
boolean true false
int 1 0
char 男 女
String 男生 女生
step2:ifelse语句来实现
判断条件:
在比较数值上:
基本类型:使用==这个运算符进行比较数值,是否相等
byte,short,int,long,float,double,char,boolean
引用类型:使用equals()来比较
String
*/
char sex = '猴';
if(sex == '男'){
System.out.println("你去男厕所吧。。");
}else{
System.out.println("去女厕所啊。。。");
}
/*
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的性别:");
String sex2 = sc.next();//男生,null
if("男生".equals(sex2)){//String类型,比较是否相等,使用equals()。
System.out.println("你去男厕所吧。。");
}else{
System.out.println("去女厕所啊。。。");
}
*/
System.out.println("main 。。over。。。");
}
}
语法规则:
if(条件1){
//条件1满足,执行此处的代码
}else if(条件2){
//条件1不满足,条件2满足,执行此处的代码
}else if(条件3){
//条件1、2都不满足,条件3满足,执行此处的代码。
}。。。
else{
}
流程图:
示例代码:
public class Test3MultiIf
{
public static void main(String[] args)
{
/*
多个条件判断:
if(条件1){
//条件1满足,就执行此处的代码。执行完毕,整个if就结束了
}else if(条件2){
//条件1不满足,条件2满足,才会执行此处丶代码。
}else if(条件3){
//条件1不满足,条件2不满足,条件3满足,执行此处的代码。。
}。。
else{
//之前的条件都不成立,那么执行此处的代码。。
}
*/
//去厕所:是男,去男厕所,是女,去女厕所,否则去公共厕所。。
char sex = '猴';
if(sex == '男'){
System.out.println("性别是:" + sex + ",去男厕所。。。");
}else if(sex == '女'){
System.out.println("性别是:" + sex + ",去女厕所。。。");
}else{
System.out.println("我也不知道啦,你去公共厕所吧。。");
}
//练习1:给一个数字,正数,负数,零。
int num = 0;
if(num > 0){
System.out.println(num + ",是正数。。");
}else if(num < 0){
System.out.println(num + ",是负数。。");
}else {
System.out.println(num +",是零啊。。");
}
//练习2:
/*
给定一个成绩:
[0,59],不及格,买苹果
0 < socre
score < 59
[60,69],及格,奖励苹果皮儿
[70,79],中等,奖励个苹果
[80,89],良好,奖励苹果手机
[90,100],优秀,奖励个苹果本
*/
int score = 101;
if(score < 0 ){//[负数]
System.out.println("成绩不能为负数。。");
}else if( score < 60 ){//score >= 0 [0,59]
System.out.println("不及格,惩罚你给大家买苹果。。");
}else if( score < 70 ){//socre >=60 [60,69]
System.out.println("及格,奖励苹果皮儿");
}else if( score< 80){//score >= 70
System.out.println("中等,奖励一个大苹果");
}else if( score < 90){//score >= 80
System.out.println("良好,奖励苹果手机");
}else if( score <= 100){//score >=90
System.out.println("优秀,奖励个苹果本");
}else{
System.out.println("满分100,成绩有误。。");
}
//思路2
if(score <0 || score > 100){//负数,超过了100分。都是非法成绩
System.out.println("成绩有误");
}else if(score >= 90){
System.out.println("优秀,你是个秀儿。。");
}else if(score >= 80){
System.out.println("良好。。");
}else if(score >= 70){
System.out.println("中等。。");
}else if(score >= 60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
System.out.println("Hello World!");
}
}
语法结构
if(外层条件){
if(内层条件){
}else{
}
}else{
}
示例代码:
class Test4If
{
public static void main(String[] args)
{
/*
if(条件1){
if(条件2){
//..
}else{
//...
代码块2;
}
}else{
}
*/
/*
给定一个年龄和性别,判断是否可以结婚。
男:不能小于22周岁
女:不能小于20周岁
*/
char sex = '女';
int age = 18;
if(sex == '男'){
//此处判断男生是否可以结婚。。
if(age >= 22){
System.out.println("可以娶媳妇啦。。。好开心。。");
}else{
System.out.println("还小呢,再等等。。");
}
}else if(sex == '女'){
//此处判断女生是否可以结婚。。
if(age >= 20){
System.out.println("可以找婆家了。。");
}else{
System.out.println("太小了。。");
}
}else{
System.out.println("搞不清楚性别,不能结婚。。");
}
System.out.println("Hello World!");
int num = 10;
if(num > 0){
System.out.println(num + ",是正数");
}
// System.out.println("我也是条件满足,才能输出的。。");
}
}
说明:如果说if语句里只有一行代码,那么{}可以省略不写。但是不建议。
switch也是实现分支语句。语法结构如下:
switch(变量/表达式){
case 数值1:分支1;break;
case 数值2:分支2;break;
case 数值3:分支3;break;
default:最后一个分支;
}
注意点:
1、case后的数值,不能重复。
2、case是无序的,先写后写都可以,关键是是否能够匹配上switch作用的变量。
3、switch作用的变量类型:short,byte,char,int,String。
4、default语句是可选的。
5、某个case匹配上后,如果该分支中没有break,那么后续的case都不再匹配,直接执行。一直到遇到break位置。
示例代码:
public class Test1Switch
{
public static void main(String[] args)
{
/*
switch语句:
语法结构:
switch(变量/表达式){//byte,short,char,int,String
case 数值1:分支1;
case 数值2:分支2;
case 数值3:分支3;
default:最后一个分支
}
用switch作用的变量,根下面的case后数值,依次的比较数值是否一样。
如果某个case后的数值和变量的值相同,那么就执行这个case后的分支内容。
如果所有的case后的数值,都没有匹配上,那么可以执行default里的内容。
如果有break,代表强制结束这个switch
如果没有break,那么后续的case都会不再匹配,全部执行。这个现象叫做swtich的穿透。
*/
/*
判断一周的食谱
每天吃啥
周一:麻辣烫
周二:狮子头
周三:红烧肉
周四:热干面
周五:火锅
周六:麻辣香锅
周日:方便面
*/
int weekDay = 5;
/*
switch(weekDay){//int :short,byte,char,jdk.17,String
case 6:
System.out.println("周六:吃麻辣香锅。。");
break;
case 7:
System.out.println("周日:吃方便面。。");
break;
case 1:
System.out.println("周一:吃麻辣烫。。");
break;
case 2:
System.out.println("周二:吃狮子头。。");
break;
case 3:
System.out.println("周三:吃红烧肉。。");
break;
case 4:
System.out.println("周四:吃热干面。。");
break;
case 5:
System.out.println("周五:吃火锅。。");
break;
default:
System.out.println("输入有误,没饭吃。。");
break;
}
*/
weekDay = 1;
switch(weekDay){
case 1:
case 3:
case 5:
System.out.println("吃方便面。。");
break;
case 2:
case 4:
case 6:
System.out.println("喝粥。。");
break;
}
System.out.println("main over。。");
}
}
课堂练习:
import java.util.Scanner;
public class Test2Switch
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
//使用switch实现简易计算器:+,-,*,/
System.out.println("请输入一个整数:");
int num1 = sc.nextInt();
System.out.println("请再次输入一个整数:");
int num2 = sc.nextInt();
System.out.println("请输入一个操作:(+,-,*,/)");
//char oper = '*';
String oper = sc.next();//"","+","abc"
switch(oper){ //+,-,*,/
case "+":
System.out.println("求和:" + (num1 + num2));
break;
case "-":
System.out.println("减法:" + (num1 - num2));
break;
case "*":
System.out.println("乘法:" + (num1 * num2));
break;
case "/":
if(num2 == 0){
System.out.println("除数不能为零");
}else{
System.out.println("除法:" + (num1 / num2));
}
break;
default:
System.out.println("无法计算。。");
}
System.out.println("程序结束。。");
}
}
1、if语句作业
读入一个整数,表示一个人的年龄。
如果小于6岁,则输出"儿童",
6岁到12岁,输出"少儿",
14岁到17岁,输出"青少年",
18岁到35岁,输出"青年",
36岁到40岁,输出"中年",
50岁以上,则输出"中老年"。
2、if语句作业
读入一个表示年份的整数,判断这一年是否是闰年。
如何判断一个年份是否是闰年:
A:如果这个年份能够被4整除,且不能被100整除,则这一年时闰年。例如:1996年是闰年,而1993年就不是闰年
B:如果这个年份能够被400整除,也表示这一年时闰年。例如:200年时闰年,1900年不是闰年。
3、switch语句作业
读入一个整数,如果是1~5之间,则分别输入5个福娃的名字,否则输出"北京欢迎你"。
“贝贝”、“晶晶”、“欢欢”、“迎迎”和“妮妮”
4、使用boolean类型,定义一个性别。true表示男,false表示女。
判断性别如果是true,表示男。就输出“是男人就。。。。。。”
5、模拟登录,键盘上输入用户名和密码,如果用户名是admin密码是123,或者用户名是zhangsan密码是zhangsan123,都表示