复习
分支语句
作用域
Scanner
开发工具
课外补充
计算机底层计算时用的是补码
三码:原码,反码,补码
正数三码合一
负数反码 = 原码符号位不动,其他位取反
负数补码 = 其反码+1
今日
循环语句
作用:重复执行一段代码
分类:
while
do while
for
while 语法: while(条件表达式){ 当条件为真,执行此处代码1 代码执行后会再次判断条件,为真,执行代码1 为假跳出循环 }do while 语法: do{ 先执行此处代码,再判断,真就再执行循环体,假就跳出循环 }while(条件表达式); 面试题: 1.问while和do while的区别 while:先判断再执行 do while:先执行再判断 2.哪个循环的循环体至少执行一次 do whilefor 由来:简化循环语法 语法: for(初始化;判断条件;自增/自减){ 循环体 } 执行流程: 初始化,判断条件,循环体,自增, 判断条件,循环体,自增, 判断条件,循环体,自增, ... 一直到判断条件不符合,跳出循环 初始化:就是变量的第一次赋值 判断条件:也可以看做是退出循环的条件 循环体:就是需要冲哪个服执行的代码
死循环:无法结束的循环 循环切套:再循环中写循环
转义字符
有特殊意义的字符 \t 制表符 \" " \' ' \n 换行 \r\n 标准换行
流程控制语句
break:跳出当前循环 当前循环指的是距离break最近的循环 for(i){ for(j){ break; } } break跳出的是j的循环 continue:从当前位置开始跳过本次循环
标记(了解)
标记 语法: 标记名: 例: jjj:for(i){ for(j){ break jjj; //跳出的jjj标记的循环,也就是i的循环 } }
慢慢捋顺
各种三角形
public class Demo17 { public static void main(String[] args) { /** * * * * * * * * * * * * */ System.out.println("* * *"); System.out.println("* * *"); System.out.println("* * *"); System.out.println("-------------------------------------"); /** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ System.out.println("* * * * * * * * *"); System.out.println("* * * * * * * * *"); System.out.println("* * * * * * * * *"); System.out.println("* * * * * * * * *"); System.out.println("* * * * * * * * *"); System.out.println("* * * * * * * * *"); System.out.println("* * * * * * * * *"); System.out.println("* * * * * * * * *"); System.out.println("* * * * * * * * *"); System.out.println("-----------------------------------"); for (int i = 0; i < 9; i++) { System.out.println("* * * * * * * * *"); } System.out.println("--------------------------------------"); for (int i = 0; i < 9; i++) { //System.out.println("* * * * * * * * *"); System.out.print("* "); System.out.print("* "); System.out.print("* "); System.out.print("* "); System.out.print("* "); System.out.print("* "); System.out.print("* "); System.out.print("* "); System.out.print("* "); System.out.println(); } System.out.println("--------------------------------------"); for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { System.out.print("* "); } System.out.println(); } System.out.println("--------------------------------------"); for (int i = 0; i < 9; i++) { for (int j = 0; j <= i; j++) { System.out.print("* "); } System.out.println(); } System.out.println("--------------------------------------"); //99乘法表 for (int i = 1; i < 10; i++) { for (int j = 1; j <= i; j++) { //1 * 1 = 1 //i + "*" + j + "=" +(i*j) System.out.print(i + "*" + j + "=" +(i*j)+"\t"); } System.out.println(); } System.out.println("-------------------------"); /** * 打印等腰三角形 * i * 0 * 2 - 0 ~2+0 * 1 * * * 2-1 ~2+1 * 2 * * * * * 2-2 ~ 2+2 * 0 1 2 3 4 j * i * 0 * 3-0 ~3+0 * 1 * * * 3-1~3+1 * 2 * * * * * 3-2~3+2 * 3 * * * * * * * 3-3~3+3 * 0 1 2 3 4 5 6 j * * 规律; * 1,i的最大值就是中间值 * 2,打印*的位置为中间值-当前i值 ~中间值 + 当前i值 * 3,j的最大值是i的最大值的2倍 */ int line = 3; for (int i = 0; i <= line; i++) { for (int j = 0; j <= 2 * line; j++) { if (j >= line - i && j <= line + i){ System.out.print("* "); }else{ System.out.print(" "); } } System.out.println(); } System.out.println("------------------------"); int center = 3; for (int i = 0; i <= center; i++) { for (int j = 0; j <= 2 * center; j++) { if (j == center - i || j == center + i || i == center){ System.out.print("* "); }else{ System.out.print(" "); } } System.out.println(); } } }
作业
1,整理笔记 2,逻辑双与&&和逻辑单与&的区别 两个的是短路与,区别在于短路与前面只要为假,后面的就不会判断,而一个的&不管前面是不是假的都会判断后面的 ☆3,扩展的赋值运算符的特点是什么,请举例 4,算术运算符的++和--参与运算时候的特点 分个前后,++在前,先自增,后运算,++再后,先运算,后自增 5,三元运算符的格式以及执行流程 条件表达式?值1:值2; 先判断条件表达式 为真取值1 为假取值2 6,看程序,写结果 (1).对于以下,有int x = 5, y = 6, z; 题目1:z = ++x + y++; 题目2:z = ++x + x++; ☆题目3:x = ++x + x++; ☆题目4:z = x > y ? ++x : y++; (2). int a=5; int b = (a++)+(--a)+(++a); 求a,b的值 7,编程题 1)已知两个变量,比较两个数据是否相等,键盘录入两个数据 2)已知三个变量,比较三个数据中的最大值,键盘录入三个数据 8,流程控制语句if...else...格式 ,完成下面"看程序,写结果" 1)int x = 1,y = 1; if(x++==2 & ++y==2){ x =7; } System.out.println("x="+x+",y="+y); x2 y2 2)int x = 1,y = 1; if(x++==2 && ++y==2){ x =7; } System.out.println("x="+x+",y="+y); x2 y1 3) int x = 1,y = 1; if(x++==1 | ++y==1){ x =7; } System.out.println("x="+x+",y="+y); x2 y2 4) int x = 1,y = 1; if(x++==1 || ++y==1){ x =7; } System.out.println("x="+x+",y="+y); x7 y1 5)boolean b = true; if(b==false) System.out.println("a"); else if(b) System.out.println("b"); else if(!b) System.out.println("c"); else System.out.println("d"); b 9,身高是具有遗传性的,子女的身高和父母的身高有一定的关系。 假定,父母和子女的身高遗传关系如下: 儿子身高(厘米)=(父亲身高+母亲身高) ×1.08÷2 女儿身高(厘米)=(父亲身高×0.923+母亲身高) ÷2 现有父亲身高177CM,母亲身高165CM。求子女身高分别预计为多少? 友情提示 1)已知的父母身高如何用代码体现? 2_)题目中的公式如何转化为代码? 10,请编程,从控制台接收2个考试的整数分数:数学分数、英语分数。 然后程序要计算并打印两科的平均分是多少?(结果取整数即可) 提示:键盘录入数据,英语成绩/数学成绩,然后求两科成绩平均分,打印结果即可 11,某餐厅,今日的优惠套餐为:麻辣香锅 、香辣土豆丝、可乐 。这三个商品的原价是:189元、15元、5元。 如果三款一起买,总价享受7.5折,小明今天点了这个套餐, 请定义变量,存储这三款菜的原价,和折扣价。 然后列出表达式计算他最后需要付多少钱?(价格使用double定义) 提示:使用变量名定义麻辣香锅,土豆丝,可乐,初始化他们原价格,输出 折扣价定义三个变量,计算结果,并输出 12,请编程,从控制台接收小明的年龄和小强的年龄。 然后程序要打印这两个年龄,以及较大的、和较小的分数? 提示:键盘录入小明的年龄,小强的年龄(int类型) (预习if..else的第二种格式,完成) 小明比小强大,程序提示"小明年纪大,是xx岁" "小强年纪小,是xx岁" 否则,就是"小强年纪大,是xx岁" "小明年纪小,是xx岁" 13,计算10的阶乘 14,计算100以内数之和 15,计算100以内偶数和 16,while与do while的区别 17,for循环的语法格式与执行流程是什么 18,统计给定区间N,M内五位数中如下数字的个数 输入说明:整数N>10000 并且N< M ,M小于100000 输出说明:符合条件的数的个数 输入样例:20000 20100 输出样例:1 (说明:特殊数:个位等于万位,十位等于千位的数) 19,打印九九乘法表 20,打印菱形(附加题)