Java基础语法总结及例题

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();
}
}
}

猜你喜欢

转载自blog.csdn.net/mulinghanxue/article/details/79822247