1.switch语句的格式
* switch(表达式){
* case 值1:
* 语句;
* break;
* case 值2:
* 语句;
* break;
* case 值3:
* 语句;
* break;
* case 值4:
* 语句;
* break;
* ....
* default:
* 语句;
* break;//(此处break可以写也可以不写)
*
* }
* 针对格式:case后所跟的数值都应该是常数,切每一句case后的break要有,如果没有会发生语句穿透现象;
* 注意事项:
* 1)case语句的后面只能跟常量(根据具体的需求),不能跟变量! javascript中的case后面是可以跟变量并且还可以是表达式;
* 2)default语句可以在switch语句中的任何位置,不影响代码执行,如果是在语句中,那么break最好带上;
* 3)建议把break带上,否则会造成一个现象:case语句穿透!
* 4)switch语句的结束条件:
* 1)语句break语句结束
* 2)执行默认执行到末尾语句结束
* 5)case语句的后面是冒号,表示和switch语句中的表达式进行比较
* 6)跳转控制语句: break,continue,retrun (后面讲)
2:函数的调用
A:明确返回值类型的函数调用B:void类型的函数调用
* 明确返回值方法调用:
* 1)单独调用
* 单独调用,没有意义,没有输出结果
* 2)输出调用
* 直接输出了结果,写死了,不能对结果进行操作
* 3)赋值调用 :有返回值类型的方法,推荐使用赋值调用,它可以结果进一步操作
* int result = sum(a,b) ;
*
* void类型的方法调用:
* public static 返回值 方法名(形式参数列表){
* return ;
* }
* 例如:需求.在控制台输出以下 形状
*
* *****
* *****
* *****
* *****
*
* 当前需求中,形状是直接输出在控制台的,没有具体的返回值,但是又要符合方法规范,--->关键字:void替代语法中 返回值
*
* 单独调用
* 没有具体的返回值的方法,适合单独调用
* 输出调用
* 错误
* 赋值调用
* 错误
3.基础面试题例题
第一题
int x = 1,y = 1;
if(x++==2 & ++y==2) {
x =7;
}
System.out.println("x="+x+",y="+y);
输出结果:x=2;
y=2;
第二题
int x = 1,y = 1;
if(x++==2 && ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);
输出结果:
x=2;
y=1;
第三题
int x = 1,y = 1;
if(x++==1 | ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);
输出结果:
x=7;
y=2;
第四题
int x = 1,y = 1;
if(x++==1 || ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);
输出结果:
x=7;
y=1;
第五题:
short s = 1; s = s + 1;有没有问题?如果有怎么解决?
有问题,因为short是短整形,short,char,byte,在计算的时候会升级为int型,而s还是短整形,变量类型不匹配,应该修改为
s=(short)(s+1);强制转换为short型,但是这样做会损失精度;
short s = 1; s += 1;有没有问题?如果有怎么解决?
没问题,s+=1;这句话的意思和s=s+1;差不多,但是却包含了一个隐含条件,会将等式右边的式子强制转换为左边变量的类型,要比s=s+1;要实用
第六题.编程题
需求:小芳的妈妈每天给她2.5元钱,她都会存起来,但是,每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,请问,经过多少天,小芳才可以存到100元钱。
代码如下:
public class homeWork05 {public static void main(String[]args) {
double moy=0;
int a,b;
for(a=1;moy<100;a++) {
moy+=2.5;
if(a%5==0) {
moy-=6;
}
}
//防止刚好大于等于100的那天是五的倍数
if((a-1)%5==0) {
moy-=6;
}
//继续存钱,不过这次不会再超过五天
b=a-1;
if(moy<100) {
for(b=a-1;moy<100;b++) {
moy+=2.5;
}
System.out.println("一共用了"+(b-1)+"天");
System.out.println("存了"+moy+"元");
}
//如果天数不是五的倍数而且钱数足够,直接输出;
System.out.println("一共用了"+(b)+"天");
System.out.println("存了"+moy+"元");
}
}
编程题2:
初步:打印m行n列的星形矩形
进阶:打印nn乘法表9*9乘法表是对星型矩阵的一种进阶形式;
具体代码如下:
public class homeWork03_2 {
public static void main(String[]args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入你想打印的星型矩阵的行数");
int x=sc.nextInt();
System.out.println("请输入你想打印的星型矩阵的列数");
int y=sc.nextInt();
for(int a=1;a<=x;a++) {
for(int b=1;b<=y;b++) {
System.out.print("*");
}
System.out.println();
}
//9*9乘法表
for(int c=1;c<=9;c++) {
for(int d=1;d<=c;d++) {
System.out.print(""+d+"*"+c+"="+(c*d)+"\t");
}
System.out.println();
}
}
}