课堂练习:
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 [选做题]