一、笔记:
1 = 4
2 = 8
3 = 24
4 = ?
理论上:1 逻辑上:96 实际:4
;是结束java的一句代码
回顾:
for循环:
格式:
for(初始化表达式;判断条件;增值表达式){
循环体;
}
流程:.....
for(;;){
for(;;){
}
}
外层循环一次,内层循环多次
***
***
***
外层控制行数,内层控制列数
----------------------------------------------------------------------------------------------------------
其他循环:while循环相当于是将for循环拆开了!
格式:
while(判断条件){
循环体;
}
do{
循环体;
}while(判断条件);
while循环和do...while循环的区别?
while:只有在判断条件成立时,才执行循环体 (先判断,后执行)
do...while:无论判断条件是否成立,循环体至少执行一次(先执行,后判断)
while经常用来写死循环。
垃圾回收图解:
内存:
内存分布:
关键字:
break:停止、终止 在循环中,表示停止当前循环
continue:继续 在循环中,表示跳出本次循环,继续执行下一次循环
return:返回 停止方法
----------------------------------------------------------------------------------------
流程控制语句之选择语句:
格式:
switch(变量){
case 值1:
语句1;
case 值2:
语句2;
case 值3:
语句3;
case ..:
语句...;
default:
语句4;
}
流程:程序拿到变量与case值进行匹配,如果匹配成功执行相应case的语句,若所有case都匹配失败,则执行默认的default中的语句4.
停止switch的方式:
1.当程序执行到switch语句最后
2.当遇到break时,switch语句停止。
【注】如果switch中没有使用break进行控制,会发生case穿透现象。
default语句与case语句没有位置关系,只要变量与case没有匹配成功都会执行default语句,如果default语句在其他位置上时,需要加break进行控制,通常来说,default出现在最后一个case的后边。
switch可识别的类型:byte short int char 但是在JDK1.7中加入了新特性:switch也可以识别String(字符串)类型
public class 随机数
{
public static void main(String[] args)
{
/*
随机获取1~10之间的数字
Math.random() 返回的是一个double类型的值, 0~9
*/
int i = (int)(Math.random()*10+1);//1~10
System.out.println(i);
}
}
二、 老铁,来做点题活动下大脑吧
1.回文是指正向读和反向读都一样的一段数字,
例如,32123.编写程序输入一个5位整数,
并判断它是否是回文。
如果输入数没有5位,则显示一个错误信息。
import java.util.Scanner;
public class HuiWen {
public static void main(String[] args) {
/*
回文是指正向读和反向读都一样的一段数字,
例如,32123.编写程序输入一个5位整数,
并判断它是否是回文。
如果输入数没有5位,则显示一个错误信息。
*/
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个五位整数");
int num=sc.nextInt();
if(num>=10000&&num<=99999){
int a=num/10000%10;
int b=num/1000%10;
int c=num/100%10;
int d=num/10%10;
int e=num%10;
if(a==e&&b==d){
System.out.println("您输入的五位整数是回文");
}else{
System.out.println("您输入的五位整数不是回文");
}
}else {
System.out.println("您输入有误");
}
}
}
2.一家公司希望通过电话传输数据,
但担心电话可能遭到窃听。
所有的数据都是以4位整数进行传输的。
该公司要求你编写程序,对数据进行加密,
以便数据的传输更加安全。
应用程序读取用户输入的4位整数,
然后按如下方式对其加密:计算各位数加上7后的和,
再除以10,用所得到的余数替换对应的数字。
然后交换第1个数字和第3个数字,
第2个数字和第4个数字。显示加密后的整数。
例:1224 加密后结果 9189
import java.util.Scanner;
public class JiaMi {
public static void main(String[] args) {
/*
一家公司希望通过电话传输数据,
但担心电话可能遭到窃听。
所有的数据都是以4位整数进行传输的。
该公司要求你编写程序,对数据进行加密,
以便数据的传输更加安全。
应用程序读取用户输入的4位整数,
然后按如下方式对其加密:计算各位数加上7后的和,
再除以10,用所得到的余数替换对应的数字。
然后交换第1个数字和第3个数字,
第2个数字和第4个数字。显示加密后的整数。
例:1224 加密后结果 9189
*/
Scanner sc=new Scanner(System.in);
System.out.println("请输入四位整数");
int num=sc.nextInt();
if(num>=1000&&num<=9999){
int a=num/1000;//获得千位
int b=num/100%10;//获得百位
int c=num/10%10;//获得十位
int d=num%10;//获得个位
//加密后的数字
int e=(a+7)%10;
int f=(b+7)%10;
int g=(c+7)%10;
int h=(d+7)%10;
System.out.println(g+""+h+""+e+""+f);//输出时交换数字
}else{
System.out.println("输入格式错误");
}
}
}
3.分析以下需求,并用代码实现:
(1)根据工龄(整数)给员工涨工资(整数),
工龄和基本工资通过键盘录入
(2)涨工资的条件如下:
[10-15) +5000
[5-10) +2500
[3~5) +1000
[1~3) +500
[0~1) +200
(3)如果用户输入的工龄为10,基本工资为3000,
程序运行后打印格式"您目前工作了10年,
基本工资为 3000元, 应涨工资 5000元,涨后工资 8000元"
import java.util.Scanner;
public class JiaXin {
public static void main(String[] args) {
/*
分析以下需求,并用代码实现:
(1)根据工龄(整数)给员工涨工资(整数),
工龄和基本工资通过键盘录入
(2)涨工资的条件如下:
[10-15) +5000
[5-10) +2500
[3~5) +1000
[1~3) +500
[0~1) +200
(3)如果用户输入的工龄为10,基本工资为3000,
程序运行后打印格式"您目前工作了10年,
基本工资为 3000元, 应涨工资 5000元,涨后工资 8000元"
*/
Scanner sc=new Scanner(System.in);
System.out.println("请输入您的工龄(整数1~14)");
int gongzi=3000;
int num=sc.nextInt();
if(num>=10&&num<15){
gongzi+=5000;
System.out.println("您目前工作了"+num+"年,基本工资为"+3000+"元,应涨工资"+5000+"元,涨后工资"+gongzi+"元");
}else if(num>=5&&num<10){
gongzi+=2500;
System.out.println("您目前工作了"+num+"年,基本工资为"+3000+"元,应涨工资"+2500+"元,涨后工资"+gongzi+"元");
}else if(num>=3&&num<5){
gongzi+=1000;
System.out.println("您目前工作了"+num+"年,基本工资为"+3000+"元,应涨工资"+1000+"元,涨后工资"+gongzi+"元");
}else if(num>=1&&num<3){
gongzi+=500;
System.out.println("您目前工作了"+num+"年,基本工资为"+3000+"元,应涨工资"+500+"元,涨后工资"+gongzi+"元");
}else if(num>=0&&num<1){
gongzi+=200;
System.out.println("您目前工作了"+num+"年,基本工资为"+3000+"元,应涨工资"+200+"元,涨后工资"+gongzi+"元");
}else{
System.out.println("输入错误");
}
}
}
永远不抱怨,一切靠自己!!!