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工具类.

使用步骤:

  1. 导包
  2. 创建Scanner对象
  3. 调用对象的方法,完成输入
  4. 接收输入的结果
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 作业
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6