課堂練習:
1√奇偶數值
編寫java程序,完成以下功能:
假設有整型變量x,判斷x是否為偶數,若為偶數,則在控制台上打印“輸入的數值是偶數”。
無論x是否為偶數,最后都要在控制台上輸出x的值
package com.three;
import java.util.Scanner;
public class three {
public static void main(String[] args) {
// scanner是一個隨機數,random也可以,但寫法不一樣
System.out.println("請輸入一個數字:");
Scanner x=new Scanner(System.in);
int x1=x.nextInt();
if (x1%2==0) {
System.out.println("輸入的數字:"+x1+"是偶數");
}else {
System.out.println("輸入的數字:"+x1+"是奇數");
}
}
}
2√整除
有一個數字為45327,判斷該數字是否能被13整除,是否能被17整除。
package com.three;
public class K2 {
public static void main(String[] args) {
int x=45327;
if (x%13==0 && x%17==0) {
System.out.println("45327是13和17倍數");
}else {
System.out.println("45327不是13和17倍數");
}
}
}
3√最大值
有兩個整型變量x,y,請編寫代碼在控制台上輸出x與y中值較大的那個數。
package com.three;
public class K3panduan {
public static void main(String[] args) {
int x=3;
int y=5;
if (x>y) {
// 判斷如果x>y輸出x,反之輸出y
System.out.println("x="+x);
}else {
System.out.println("y="+y);
}
}
}
4√閏年
判斷2064年是不是閏年。
閏年判斷規則:
能被400整除的是閏年
能被100整除,不能被400整除的不是閏年
能被4整除,不能被100整除的是閏年
其他的不是閏年
package com.three;
public class K4panduanrunnian {
public static void main(String[] args) {
int x=2064;
if (x%400==0 ) {
System.out.println(x+"是閏年");
}else if (x%4==0) {
System.out.println(x+"是閏年");
}
else {
System.out.println(x+"不是閏年");
}
}
}
5√月份
如果月份month為1—12的一個月份,輸出該月份的天數;如果數字不符合,輸出“錯誤的月份”。
1、3、5、7、8、10、12月天數為31
2月天數為28
4、6、9、11月天數為30
使用switch語句完成需求
package com.three;
import java.util.Random;
import java.util.Scanner;
public class K5suijiyuefentianshu {
public static void main(String[] args) {
System.out.println("請隨機輸入一個月份:");
Scanner x=new Scanner(System.in);
int x1=x.nextInt();
switch (x1) {
case 1:
System.out.println(x1+"月為31天");
break;
case 2:
System.out.println(x1+"月為28天");
break;
case 3:
System.out.println(x1+"月為31天");
break;
case 4:
System.out.println(x1+"月為30天");
break;
case 5:
System.out.println(x1+"月為31天");
break;
case 6:
System.out.println(x1+"月為30天");
break;
case 7:
System.out.println(x1+"月為31天");
break;
case 8:
System.out.println(x1+"月為31天");
break;
case 9:
System.out.println(x1+"月為30天");
break;
case 10:
System.out.println(x1+"月為31天");
break;
case 11:
System.out.println(x1+"月為30天");
break;
case 12:
System.out.println(x1+"月為31天");
break;
default:
System.out.println("輸入錯誤信息");
break;
}
}
}
1、編寫程序實現:用戶輸入商品名稱,顯示該商品的價格。
6√隨機月份天數
產生一個12以內的隨機數作為月份,輸出該月份的天數。
1、3、5、7、8、10、12月天數為31
2月天數為28
4、6、9、11月天數為30
***66、隨機天數
產生一個12以內的隨機月份,和一個30以內的隨機天數,輸出該日是本年的第多少天(不考慮閏年)?【選做題】
package com.three;
public class K66suijitianhsu {
public static void main(String[] args) {
//每月的天數
//0只是占位
int[] mons = { 0, 31, 28, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30 };
//隨機月份 -取模%12 值為0~11,所以要+1
//Math.random()函數返回一個浮點,為隨機數在范圍[0,1)
int rmon = (int) (Math.random() * 100 % 12 + 1);
//隨機天數
int rday = (int) (Math.random() * 100 % 30 + 1);
//打印隨機幾月和幾號
System.out.println(rmon + ":" + rday);
int day = 0;
//如果為一月就直 接輸出天數
if (rmon == 1) {
System.out.println(rday);
} else {
//循環加前n-1月的天數
for (int i = rmon; i > 1; i--) {
day = day + mons[i - 1];
}
//最后加上本月的天數
day += rday;
System.out.println(day);
}
}
}
7√循環1到100的和
計算1+2+3+…+100的和(提示利用while語句)
package com.three;
public class K7xunhuanhe {
public static void main(String[] args) {
// 求1到100的和
// 1定義變量x
// 2定義求和變量sum
int x=1;
int sum=0;
while (x<=100) {
// 當x<=100時循環
// 將x的值賦值給sum之后x進行自增
sum=sum+x;
x++;
}
System.out.println(sum);
}
}
8√1到100所有奇數和
計算從1到100的所有奇數相加(提示利用while語句)
package com.three;
public class K8jishuhe {
public static void main(String[] args) {
// 定義兩個變量x代表1到100之間的奇數 sum代表搜有技術相加的和
int x=1;
int sum = 0;
// 當x<=100時且x為奇數時,將x值賦值給sum,x進行自增
while (x<=100) {
if (x%2!=0) {
sum=sum+x;
}
x++;
}
System.out.println(sum);
}
}
9√do while
計算1+2+3+…+100的和(用do while 循環完成)
package com.three;
public class K8jishuhe {
public static void main(String[] args) {
// 定義兩個變量x代表1到100之間的奇數 sum代表搜有技術相加的和
int x=1;
int sum = 0;
// 當x<=100時且x為奇數時,將x值賦值給sum,x進行自增
while (x<=100) {
if (x%2!=0) {
sum=sum+x;
}
x++;
}
System.out.println(sum);
}
}
10√for
用for循環改寫從1到100的所有奇數相加的和
package com.three;
public class K10for {
public static void main(String[] args) {
int sum=0;
int x=1;
for(int i=1;i<=100;i++) {
if (x%2!=0) {
sum=sum+i;
}
i++;
}
System.out.println("100以內所有奇數和為:"+sum);
}
}
11√循環
循環得到用戶從控制台輸入的5個整數,該整數為用戶購買商品的價格,計算用戶一共需要花費的總金額。
package com.three;
import java.util.Scanner;
public class K11circulation {
public static void main(String[] args) {
// 定義一個sum用來累加
// 定義一個sc代表輸入的數字
// 定義一個自增的變量j記錄輸入數字個數,從1開始
int sc=0;
int sum=0;
for(int j=1;j<=5;j++) {
System.out.println("第"+j+"個數字為:");
sc=new Scanner(System.in).nextInt();
sum=sum+sc;
}
// 答應sum
System.out.println("總金額為:"+sum);
} }
12√循環
3、隨機產生一個10以內的正整數,用戶循環輸入三個整數,如果用戶輸入的整數包含隨機數,輸出“猜對了”;反之,輸出“沒猜到”。
例如:
隨機數為4,用戶輸入數為:2,3,4。輸出:猜對了
隨機數為4,用戶輸入數為:1,2,3。輸出:沒猜到
int a = new Random().nextInt(10);
if(a==4||a==5||a==6) {
System.out.println("恭喜你,猜對了");
}else {
System.out.println("抱歉,錯了,再來一次嗎?");
}
13√循環
用戶輸入數字,如果是0,退出程序,界面如下:
public static void main(String[] args) {
System.out.println("**********跨境電商交易平台**********");
System.out.println("* *");
System.out.println("* 1、制造商業資料 *");
System.out.println("* 2、銷售商品資料 *");
System.out.println("* 3、商品類別管理 *");
System.out.println("* 4、商品詳細信息 *");
System.out.println("* 0、退出程序 *");
System.out.println("* *");
System.out.println("**********跨境電商交易平台**********");
// 方法一:Random()
// int a=new Random().nextInt(6);
// System.out.println("請輸入一個數字:"+a);
// 方法二:Scanner
System.out.println("請輸入一個數字:");
Scanner a1=new Scanner(System.in);
int a=a1.nextInt();
if (a==0) {
System.out.println("歡迎使用本軟件,再見!");
}else if (a==1) {
System.out.println("制造商業資料");
}else if (a==2) {
System.out.println("銷售商品資料");
}else if (a==3) {
System.out.println("商品類別管理 ");
}else if (a==4) {
System.out.println("商品詳細信息 ");
}else {
System.out.println("對不起,輸入錯誤! ");
}
}
附加題****
得到用戶從控制台輸入的五個正整數,該整數為用戶購買商品的價格,如果用戶輸入整數為0或負數,不計入統計,結束輸入后計算用戶一共需要花費的總金額。
課后作業
1√利潤提成
企業發放的獎金根據利潤提成。利潤低於或等於10萬元時,獎金可提10%;利潤高於10萬元,低於或等於20萬元時,高於10萬元的部分,可提成7.5%;高於20萬,低於或等於40萬時,高於20萬元的部分,可提成5%;高於40萬,低於或等於60萬時,高於40萬元的部分,可提成3%;高於60萬,低於或等於100萬時,高於60萬元的部分,可提成1.5%,高於100萬元時,超過100萬元的部分按1%提成,輸入一個整數變量為當月利潤,求應發放獎金總數?(知識點:條件語句) [必做題]
int x=new Random().nextInt(2000000);
int y=new Random().nextInt();
if (x>100000) {
y=(int) (x*0.1);
}
if (x>200000)
{y=(int) (x*0.1)+(int) ((x-200000)*0.075);
}
if (x>200000)
{y=(int) (x*0.1)+(int) (x*0.075);
}
System.out.println(y);
}
2√成績等級
輸入一個成績a,使用switch結構求出a的等級。A:90-100,B:80-89,C:70-79,D:60-69,E:0~59(知識點:條件語句switch)[必做題]
System.out.println("請輸入成績:");
Scanner a1 = new Scanner(System.in);
int a= a1.nextInt();
switch (a/10) {
case 10:
case 9:
System.out.println("A");
break;
case 8:
System.out.println("B");
break;
case 7:
System.out.println("C");
break;
case 6:
System.out.println("D");
break;
default:
System.out.println("E");
break;
}
a1.close();
3√奇偶數值
輸入一個數字,判斷是一個奇數還是偶數(知識點:條件語句) [必做題]
int a=0;
System.out.println("請輸入一個數:");
Scanner a1=new Scanner(System.in);
a=a1.nextInt();
if (a%2!=0) {
System.out.println("奇數");
}else {
System.out.println("偶數");
}
4√隨機變量x
編寫程序, 判斷一個隨機變量x的值,如果是1,輸出x=1,如果是5,輸出x=5,如果是 10,輸出x=10,除了以上幾個值,都輸出x=none。(知識點:條件語句) [必做題]
System.out.println("請輸入一個數:");
Scanner x1=new Scanner(System.in);
int x=x1.nextInt();
if (x==1 ) {
System.out.println("x="+x);
}else if (x==5) {
System.out.println("x="+x);
}else if (x==10) {
System.out.println("x="+x);
}
else {
System.out.println("x=none");
}
5√隨機整除
判斷一個隨機整數是否能被5和6同時整除(打印能被5和6整除),或只能被5整除(打印能被5整除),或只能被6整除,(打印能被6整除),不能被5或6整除,(打印不能被5或6整除)(知識點:條件語句) [必做題]
System.out.println("請輸入一個數:");
Scanner x1=new Scanner(System.in);
int x=x1.nextInt();
if (x%5==0 &&x%6==0) {
System.out.println("能被5和6整除");
}else if (x%5!=0 && x%6!=0) {
System.out.println("不能被5和6整除");
}else if (x%5==0) {
System.out.println("能被5整除");
}else if (x%6==0) {
System.out.println("能被6整除");
}
6√閏年
輸入一個年份,判斷這個年份是否是閏年(知識點:條件、循環語句) [必做題]
System.out.println("請輸入一個數:");
Scanner x1 = new Scanner(System.in);
int x = x1.nextInt();
if (x%400==0) {
System.out.println("閏年");
}else if (x%4==0) {
System.out.println("閏年");
}
else {
System.out.println("平年");
}
7√成績等級
輸入一個0~100的分數,如果不是0~100之間,打印分數無效,根據分數等級打印A,B,C,D,E(知識點:條件語句if elseif) [必做題]
System.out.println("請輸入成績");
Scanner a1=new Scanner(System.in);
int a=a1.nextInt();
switch (a/10) {
case 10:
case 9:
System.out.println("A");
break;
case 8:
System.out.println("B");
break;
case 7:
System.out.println("C");
break;
case 6:
System.out.println("D");
break;
default:
System.out.println("E");
break;
}
a1.close();
8√xyz大到小
輸入三個整數x,y,z,請把這三個數由小到大輸出(知識點:條件語句) [必做題]
int a = 11;
int b = 67;
int c = 9;
if (a > b) {
if (c > a) {
System.out.println(b + "," + a + "," + c);
} else if (c < b) {
System.out.println(c + "," + b + "," + a);
} else {
System.out.println(b + "," + c + "," + a);
}
// a<<b時
} else {
if (c < a) {
System.out.println(c + "," + a + "," + b);
} else if (c > b) {
System.out.println(a + "," + b + "," + c);
} else {
System.out.println(a + "," + c + "," + b);
}
}
9√12345幾位數
有一個不多於5位的正整數,求它是幾位數,分別打印出每一位數字。(知識點:條件語句) [必做題]
public static void main(String[] args) {
// 有一個不多於5位的正整數,求它是幾位數,分別打印出每一位數字。(知識點:條件語句)
System.out.println("請輸入一個數:");
Scanner x1 = new Scanner(System.in);
String x = x1.next();
System.out.println("你輸入的數字為為:" + x.length() + "位");
for (int i = x.length() - 1; i >= 0; i--) {
System.out.print(x.charAt(i) + " ");
}
}
}
課后作業:[選做題]
1、10年年薪
假設某員工今年的年薪是30000元,年薪的年增長率6%。編寫一個Java應用程序計算該員工10年后的年薪,並統計未來10年(從今年算起)總收入。(知識點:循環語句for)[選做題]
2、猴子吃桃
猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個,第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。(知識點:循環語句 while)[選做題]
3、匯款
編寫一個程序,計算郵局匯款的匯費。如果匯款金額小於100元,匯費為一元,如果金額在100元與5000元之間,按1%收取匯費,如果金額大於5000元,匯費為50元。匯款金額由命令行輸入。(知識點:條件語句) [選做題]
4、1到100
分別使用for循環,while循環,do循環求1到100之間所有能被3整除的整數的和。(知識點:循環語句) [選做題]
For:
public static void main(String[] args) {
int sum = 0;
for (int i=0;i < 101; i++) {
if (i % 3 == 0) {
sum = sum + i;
} else {
}
}
System.out.println(sum);
}
}
While:
int x = 0;
while (x < 100) {
if (x % 3 == 0) {
sum = sum + x;
x++;
} else {
x++;
}
}
System.out.println(sum);
}
}
5、輸出0-9之間的數
輸出0-9之間的數,但是不包括5。 [選做題]
for(int i=1;i<10;i++){
if(i!=5){
System.out.println(i);
}
else{
}
}
6、整數n的階乘
編寫一個程序,求整數n的階乘,例如5的階乘是1*2*3*4*5 [選做題]
// 求整數n的階乘
//1: for循環
// int x;
// int sum=1;
// System.out.println("請輸入數字n:");
// Scanner in=new Scanner(System.in);
// int i=in.nextInt();
// String s= "階乘=";
// for(x=1;x<=i;x++){
// sum=sum*x;
// if (x<i){
// s = s + x+ '*' ;
// }
// else{
// s = s + x + "=" + sum;
// }
// }
// System.out.println(i+s);
// 2遞歸方法:
System.out.println("請輸入一個數:");
Scanner input = new Scanner(System.in); //構建一個輸入實例
int n = input.nextInt(); //輸入n的值
// n的階乘的值為:f(n); //用遞歸函數求解n的階乘
System.out.println(n+"!=" + f(n));
}
public static int f(int n){ //階乘求解函數
if(n == 0){ //判斷傳進來的n是否為0,若為零返回階乘為1
return 1;
}
return n*f(n-1); //重新調用函數,繼續判斷n-1是否為零,
} //若不為0則return值為n*(n-1)*factorial(n-1-1),直到n=0,跳出函數
}
7、大於200的最小的質數
編寫一個程序,找出大於200的最小的質數[選做題]
8、反轉
由命令行輸入一個4位整數,求將該數反轉以后的數,如原數為1234,反轉后的數位4321 [選做題]
