第一題
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元");
}
}