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<m;i++) {
for(int j=0;j<n;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元");
}
}







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章