Java作业一

第一题

switch语句的格式?针对格式的解释?以及注意事项?

switch(表达式){

   case 值1:
语句1;
  break ;
case 值2:
语句2;
break;
case 值3:
语句3;
break;
 ......
default:
语句n+1;
break;

  }

解释:

switch:当前是一个选择结构语句,它的作用和if语句是一样的。

case语句:后面的值和switch里面的表达式进行比较,如果相同,则进入到case语句中,执行case语句中的内容。

break:表示结束switch语句,即跳出switch语句。

default:和if语句中的else是一样的,如果case语句都不成立,则执行default中的语句。

注意事项:

switch语句后的表达式能够跟的类型有:byte,short,int,char

              jdk5以后,可以跟枚举。

              jdk7以后,可以跟String类型。

如果case语句中有break,则执行完后就跳出switch语句,如果case语句中没有break,则会继续向下运行,且不再进行比较,直至遇到break跳出switch语句或执行到语句末为止。

第二题

看程序,分析下面程序的结果:

int  x = 2,y=3;

switch(x)
{
default:
y++;
case 3:
y++;
break;
case 4:
y++;

System.out.println("y="+y);

结果: y=5

第三题

根据输入的值,判断是星期几。(分别用if语句和switch语句实现)

if语句的代码如下:

package homework;

import java.util.Scanner;
public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("请输入一个数:");
int num=in.nextInt();
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 if(num==6) {
System.out.println("星期六");
}
else {
System.out.println("星期日");
}
}

}

运行结果:

请输入一个数:
7

星期天


switch语句代码如下:

package homework;
import java.util.Scanner;
public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("请输入一个数:");
int num=in.nextInt();
switch(num) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期天");
break;
}
}
}

运行结果:

请输入一个数:
2

星期二

第四题

  用for循环完成如下案例
  求和
  求偶数和
  求奇数和
  打印水仙花数
  统计水仙花数

  九九乘法表

1)求和

代码如下:

package homework;
import java.util.Scanner;
public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("用for循环求1~100之和");
int sum=0;
for(int i=1;i<=100;i++ ) {
sum+=i;
}
System.out.println("1~100之和为:"+sum);
}

}

运行结果如下:

用for循环求1~100之和

1~100之和为:5050

2)求偶数和

代码如下:

package homework;

import java.util.Scanner;

public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("用for循环求1~100偶数之和");
int sum=0;
for(int i=1;i<=100;i++ ) {
if(i%2==0) {
sum+=i;
}
}
System.out.println("1~100偶数之和为:"+sum);

}

}

运行结果如下:

用for循环求1~100偶数之和

1~100偶数之和为:2550

3)  求奇数和

代码如下:

package homework;

import java.util.Scanner;
public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("用for循环求1~100奇数之和");
int sum=0;
for(int i=1;i<=100;i++ ) {
if(i%2==1) {
sum+=i;
}
}
System.out.println("1~100奇数之和为:"+sum);

}

}

运行结果如下:

用for循环求1~100奇数之和

1~100奇数之和为:2500

 打印水仙花数和统计水仙花数个数

代码如下:

package homework;
public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("打印三位数中的水仙花数:");
int a,b,c,num=0;
for(int i=100;i<=999;i++) {//234
a=i%10;     //个位
b=i/10%10;  //十位
c=i/100;    //百位
if(i==a*a*a+b*b*b+c*c*c) {
System.out.println(i);
num++;
}
}
System.out.println("水仙花数的个数为:"+num);
}

}

运行结果如下:

打印三位数中的水仙花数:
153
370
371
407
水仙花数的个数为:4

九九乘法表

代码如下:

package homework;
public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++)
System.out.print(i+"*"+j+"="+i*j+"\t");
System.out.println();
}
}

}

运行结果如下:

1*1=1 
2*1=2 2*2=4 
3*1=3 3*2=6 3*3=9 
4*1=4 4*2=8 4*3=12 4*4=16 
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 

9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 

第五题

break,continue和return分别有什么用?

break: 在循环语句中,如果程序运行到break语句则跳出循环体,执行循环后面的语句

continue:在循环语句中,如果程序运行到continue语句则跳过当次循环中剩余的语句,进行下一次循环。

return:当方法的返回值类型为void时则不使用return语句或者说不返回任何值,当方法的返回值不为空时,return

语句则返回其后面的表达式,表达式的类型和方法名前面的类型一致,将表达式的值返回给主调函数。

第六题

函数的概念?函数的格式?格式的解释说明

概念:具备特定共能的代码块,解决了重复性代码的问题,提高了程序的可读性个复用性。

格式:

方法的格式: 形式参数

  public static  返回值类型 方法名(参数类型1 变量1,参数类型2 变量2....参数类型n 变量n){ 

                            函数体...                       

                            return ...

}

格式解释说明:

public static:函数是静态的,而且是公共的。

返回值类型:根据具体的需求来决定返回什么类型的数据。

方法名:给当前的代码块起名字,命名规则:如果是一个单词,则所有字母小写,如果多个单词,则第一个单词小写,从第二个单词开始,每个单词的首字母大写。

第七题

函数的练习:

A:求两个数据之和

代码如下:

package homework;


import java.util.Scanner;


public class HomeWork {
public static int add(int x,int y) {
int sum1=x+y;
return sum1;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("请输入两个数字:");
int a=in.nextInt();
int b=in.nextInt();
int sum=add(a,b);
System.out.println("两个数据之和为:"+sum);
}

}

运行结果如下:

请输入两个数字:
5
6
两个数据之和为:11

B:判断两个数据是否相等

代码如下:

package homework;


import java.util.Scanner;


public class HomeWork {
public static boolean compare(int x,int y) {
return x==y;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("请输入两个数字:");
int a=in.nextInt();
int b=in.nextInt();
boolean flag=compare(a,b);
if(flag)
System.out.println("这两个数字相等");
else
System.out.println("这两个数字不想相等");
}

}

运行结果如下:

请输入两个数字:
 4 4

这两个数字相等

C:获取两个数中较大的值

代码如下:

package homework;


import java.util.Scanner;


public class HomeWork {
public static int Max(int x,int y) {
int max=x>y?x:y;
return max;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("请输入两个数字:");
int a=in.nextInt();
int b=in.nextInt();
int max=Max(a,b);
System.out.println("两个数字中较大的一个数字是:"+max);
}

}

运行结果如下:

请输入两个数字:
15 46
两个数字中较大的一个数字是:46

D:打印m行n列的星形矩形

代码如下:

package homework;
import java.util.Scanner;
public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("请输入星星矩阵的行数:");
int m=in.nextInt();
System.out.println("请输入星星矩阵的列数:");
int n=in.nextInt();
for(int i=0;i for(int j=0;j System.out.print("*");
}
System.out.println();
}
}

}

运行结果如下:

请输入星星矩阵的行数:
6
请输入星星矩阵的列数:
7
*******
*******
*******
*******
*******

E:打印nn乘法表

代码如下:

package homework;
import java.util.Scanner;
public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("请输入乘法表的阶数:");
int n=in.nextInt();
for(int i=1;i<=n;i++) {
for(int j=1;j<=i;j++) {
System.out.print(i+"*"+j+"="+i*j+"  ");
}
System.out.println();
}
}

}

运行结果如下:

请输入乘法表的阶数:
8
1*1=1  
2*1=2  2*2=4  
3*1=3  3*2=6  3*3=9  
4*1=4  4*2=8  4*3=12  4*4=16  
5*1=5  5*2=10  5*3=15  5*4=20  5*5=25  
6*1=6  6*2=12  6*3=18  6*4=24  6*5=30  6*6=36  
7*1=7  7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49  

8*1=8  8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=64  

第八题

short s = 1; s = s + 1;有没有问题?如果有怎么解决?

short s = 1; s += 1;有没有问题?如果有怎么解决?

第一个有问题,以为s为short类型,1为int类型,s=s+1先运行s+1,则编译器自动进行隐式类型转换(类型提升)将short类型转换为int类型,则s+1为int类型,然后将s+1赋值给s就是错误的,因为将int类型转换为short类型则要进行手动的强制类型转换(显式类型转换),而编译器不会自动进行。

第二个没有问题。因为"+="运算符在解析的时候等价于s=(short)(s+1)或者是s=(s的类型)s+1,进行了显式类型转换(强制类型转换),将int类型转换为short类型。

第九题

9:第一题
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

第十题

编写代码实现如下内容:if语句实现
考试成绩分等级。
90~100 A等。
80-89 B等。
70-79 C等。
60-69 D等。
60以下 E等。

请根据给定成绩,输出对应的等级。

代码如下:

package homework;
import java.util.Scanner;
public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("请输入成绩:");
int score=in.nextInt();
if(score>100)
System.out.println("输入有误!!!");
else if(score>=90)
System.out.println("A等");
else if(score>=80)
System.out.println("B等");
else if(score>=70)
System.out.println("C等");
else if(score>=60)
System.out.println("D等");
else System.out.println("E等");
}

}

运行结果如下:

请输入成绩:
55

E等

第十一题

编程题 需求:小芳的妈妈每天给她2.5元钱,她都会存起来,但是,
      每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,
  请问,经过多少天,小芳才可以存到100元钱。

package homework;
import java.util.Scanner;
public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0,day=0;
while(sum<100) {
day++;
sum+=2.5;
if(day%5==0)
sum-=6;
}
System.out.println("经过"+day+"天小芳才可以存到100元");
}
}







你可能感兴趣的:(Java作业)