day05
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
今日内容
零、 复习昨日
一、作业
二、键盘录入
三、流程控制语句
零、 复习昨日
1 运算符
赋值
+=
算术
+ - * / % ++ --
+ 字符串拼接
/ 整数相除,结果整数,舍弃小数
++ –关系
关系运算的结果是布尔型逻辑
& | ! && ||三目
数据类型 结果变量 = 布尔表达式 ? true时执行 : false时执行;
运算符优先级
先括号,再乘除,后加减
先关系,后逻辑
最后赋值2 流程控制语句
if
if…else
一个学习方法: 过电影
一个学习的必经之路: 模仿,抄!
一、作业
4、声明一个int型的数据判断这个数是否能被2整除如果能被2整除那么输出“这个数是偶数”否则输出“这个数是奇数”。
package com.qf.homework;
public class Homework1 {
/*
* 声明一个int型的数据判断这个数是否能被2整除如果能被2整除 那么输出“这个数是偶数”否则输出“这个数是奇数”。
*/
public static void main(String[] args) {
int a = 10;
if (a % 2 == 0) {
System.out.println("这个数是偶数");
} else {
System.out.println("这个数是奇数");
}
}
}
5、 声明一个年份值如果是闰年输出是闰年年份能被4整除且不能被100整除或者能被400整除的年份
package com.qf.homework;
public class Homework2 {
/*
* 5、 声明一个年份值如果是闰年输出是闰年
* 年份能被4整除且不能被100整除或者能被400整除的年份
*/
public static void main(String[] args) {
int year = 2000;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
System.out.println(year+"是闰年");
} else {
System.out.println(year+"是平年");
}
}
}
6、 商场消费返利活动声明一个顾客消费金额如果金额打8折后仍然满1000元用户就获得200元代金券一张,最后输出用户最终消费金额
package com.qf.homework;
public class Homework3 {
/*
* 商场消费返利活动声明一个顾客消费金额如果金额打8折后仍然满1000元
* 用户就获得200元代金券一张(当天结账使用),最后输出用户最终消费金额
*/
public static void main(String[] args) {
double xf = 1000.0; // 消费金额
double dzh = xf * 0.8;// 打8折后的钱
if(dzh >= 1000) {
double zh = dzh - 200;
System.out.println("最终消费:" + zh);
} else {
double zh = dzh;
System.out.println("最终消费:" + zh);
}
}
}
二、键盘录入
在程序运行后,通过控制台向程序输入一些数据.使用的是Scanner工具类.
使用步骤:
- 导包
- 创建Scanner对象
- 调用对象的方法,完成输入
- 接收输入的结果
package com.qf.scanner;
// 1 导入其他包
import java.util.Scanner;;
public class Demo1 {
public static void main(String[] args) {
/*
* 2创建Scanner对象
* Scanner scanner = new Scanner(System.in);
* Scanner 固定不能变
* scanner 变量名(对象名),可以自定义
* = 赋值
* new 创建对象的关键词,固定
* Scanner 跟前面的Scanner要一致
* () 参数列表
* System.in 输入
*/
Scanner scanner = new Scanner(System.in);
/*
* .nextInt(); 允许输入数字
* .nextLine(); 允许输入一行,其实就是字符串
* .nextDouble();
*/
System.out.println("请输入年份:");
int year = scanner.nextInt();
System.out.println("输入的年份是:" + year);
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
System.out.println(year+"是闰年");
} else {
System.out.println(year+"是平年");
}
}
}
练习: 使用Scanner改造消费券题目,键盘输入金额,计算最终消费金额
三、流程控制语句
3.1 elseif…
使用if.else语句完成程序: 输入一个数字,是周几,比如是1,输出周一,2输出周二,依次类推,取值范围1-7
package com.qf.control;
import java.util.Scanner;
/*
* if.else局限性
*/
public class Demo3 {
/*
* 使用if.else语句完成程序:
* 输入一个数字,是周几,比如是1,输出周一,2输出周二,依次类推,取值范围1-7
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("输入数字:");
int num = scanner.nextInt();
if (num >= 1 && num <= 7) {
if (num == 1) {
System.out.println("周一,吃米饭");
} else {
if (num == 2) {
System.out.println("周二,吃面条");
} else {
if (num == 3) {
System.out.println("周三,吃麻辣香锅");
} else {
if (num == 4) {
System.out.println("周四,吃胡辣汤");
} else {
if (num == 5) {
System.out.println("周五,吃元宵");
} else {
System.out.println("周末,不吃!");
}
}
}
}
}
} else {
System.out.println("数字不符合要求!");
}
}
}
以上使用if.else语法完成多条件判断时,if…else嵌套很严重,代码不便于阅读
所以,多分支语句推荐使用if.elseif.elseif…else
// ==============================================
/*
* if (布尔表达式1) {
* 执行语句1;
* } else if(布尔表达式2) {
* 执行语句2;
* } else if(布尔表达式3) {
* 执行语句3;
* } ... {
* 执行语句n;
* } else {
* 执行语句;
* }
* ---------------
* 执行流程:
* 1 先判断if后表达式
* 2 如果表达式结果为true,执行语句1,后续所有elseif不执行
* 3 如果表达式结果为false,跳过语句语句1,去执行第二个判断
* 4 如果第二个表达式为true,就执行语句2,
* 如果第二个表达式为false,就跳过语句2,执行第三个判断
* 5 ...
* 6 如果以上所有if判断都是false,就执行最后一个else
*/
if (num >= 1 && num <= 7) {
if (num == 1) {
System.out.println("11");
} else if (num == 2) {
System.out.println("22");
} else if (num == 3) {
System.out.println("33");
} else if (num == 4) {
System.out.println("44");
} else if (num == 5) {
System.out.println("55");
} else {
System.out.println("周末");
}
} else {
System.out.println("数字不符合条件!");
}
练习: 键盘输入成绩,判断成绩,输出等级
0-59 不及格,60-69,中等,70-79,良好,80-89,优秀,90-100 保送清华
3.2 switch.case[不重要]
switch.case用来做等值
选择
package com.qf.control;
/*
* switc.case
*/
public class Demo4 {
public static void main(String[] args) {
// 判断数字是周几
int a = 1;
// switch后允许byte,short,int,char,String,枚举
switch(a){
case 1: // case后是定值,类型要与switch后的值一致,后面是冒号
System.out.println("周一");
break;// 没有break,会造成case击穿
// 有break,会打断当前switch结构不再执行
case 2:
System.out.println("周二");
break;
case 3:
System.out.println("周三");
break;
default:// default最后执行
System.out.println("其他值!");
}
System.out.println("这是switchcase后");
/*
* 1 switch后的值,与case的值做等值判断
* 2 如果相等,就会执行case内部的代码,
* 遇到break,switchcase结构不再执行
* 3 如果不相等,就执行下一个case做等值判断
* 4 ...
* 5 如果以上所有case都不相等,直接执行default内的内容
*/
}
}
练习: 键盘输入数字,1 输出打给儿子,2输出打给女儿,3输出打给孙子 其他 报警
扩展题:使用switch完成练习: 输入 1-12的数字,输出对应的季节,3~5 春季, 6~8 夏季,9~11 秋季,12~2 冬季
3.3 循环
有些场景是需要某些代码重复执行的.
while循环
do.while循环
for循环
3.4 while[重要]
package com.qf.control;
public class Demo5 {
public static void main(String[] args) {
/*
* while (布尔表达式) {
* 执行代码;
* }
* -------------------
* 1 当执行到while后,判断表达式
* 2 如果表达式结果为true,就执行{}内的语句
* 执行后,回头执行while内的判断
* 3 如果为true,继续执行{}内内容,然后继续回头判断....
* 只有改变变量,让判断为false,跳出循环
*/
// 重复输出"元宵节快乐!"10遍
int i = 1;
while (i <= 10) {
System.out.println("元宵节快乐!");
i++;
}
System.out.println("i = " + i);
/*
* 总结套路(循环四要素):
* 1 循环初始值
* 2 循环控制条件
* 3 循环体
* 4 循环迭代
*/
// 练习: 打印1-10
int j = 1;
while (j <= 10) {
System.out.println("j = " + j);
j++;
}
// 练习: 10-1
int k = 10;
while (k > 0) {
System.out.println("k = " + k);
k--;
}
// 练习: 输出1-100中的偶数
int m = 1;
while (m <= 100) {
// 判断是否是偶数
if (m % 2 == 0) {
System.out.print(m+" ");
}
// 每10次换一行
if (m % 10 == 0) {
System.out.println();
}
m++;
}
// 练习: 输出1-100的累加和
}
}
while循环,先判断后执行
3.5 do.while[了解]
do.while循环,是先执行后判断 (先斩后奏)
package com.qf.control;
public class Demo6 {
public static void main(String[] args) {
/*
* do{
* 循环体;
* } while(布尔表达式);
* -------
* 1 先执行do内代码
* 2 然后再判断表达式
* 3 结果为对,再回头执行do内代码
* 4 继续判断表达式,直到判断为false跳过循环
*/
int i = 1;
do {
System.out.println("马上大扫除,10分钟搞定!");
i++;
} while(i <= 10);
// 练习: 输出1-10,10-1,1-100的奇数
}
}
四、作业
1 重复2遍代码
2 阿里规范那段代码抄3遍
3 作业