package com.exercise;
public class _06流程控制语句练习和课后作业 {
public static void main(String[] args) {
//if语句:
//1、编写java程序,完成以下功能:
//假设有整型变量x,判断x是否为偶数,若为偶数,则在控制台上打印“输入的数值是偶数”。
//无论x是否为偶数,最后都要在控制台上输出x的值
System.out.println("if语句:");
System.out.println("第一题");
int x = 4;
if ((x % 2) == 0)
{
System.out.println("输入的数值是偶数");
}
System.out.println("x的值为:"+ x);
//2、有两个整型变量x1,y,请在控制台上输出x与y中值较大的那个数。
System.out.println("\n第二题");
int x1 = 9, y =4;
System.out.println("x1的值为:" + x1);
System.out.println("y的值为:" + y);
if (x1 < y)
{
System.out.println("y大,y=" + y);
}
else if (x1 > y)
{
System.out.println("x1大,x1=" + x1);
}
else
{
System.out.println("x1 = y");
}
//switch语句:
//仿照左侧示例完成如下练习:
//如果是星期五则在页面上显示“Finally Friday!”,
//如果是星期六则在页面上显示“Super Saturday!”,
//如果是星期日则在页面上显示“Sleepy Sunday!”,
//其他日子显示“I hope for my weekend!”(提示利用switch语句)
System.out.println("\nswitch语句:");
System.out.println("第一题");
int number = 5;
switch (number)
{
case 5:
System.out.println("Finally Friday!");
break;
case 6:
System.out.println("Super Saturday!");
break;
case 7:
System.out.println("Sleepy Sunday!");
break;
default:
System.out.println("I hope for my weeknd!");
}
//while、do…while语句:
System.out.println("\nwhile、do...while语句:");
//1、计算1+2+3+…+100的和(提示利用while语句)
System.out.println("第一题");
int i1 = 1, sum1 = 0;
while (i1 <= 100)
{
sum1 = sum1 + i1;
i1++;
}
System.out.println("1+2+3+...+100的和为:" + sum1);
//2、计算从1到100的所有奇数相加(提示利用while语句)
System.out.println("\n第二题");
int i = 1, sum = 0;
// while (i <= 100)
// {
// if ((i%2) != 0)
// {
// sum = sum + i;
// }
// i++;
// }
// System.out.println("1到100所有奇数的和为:" + sum);
do {
if ((i%2) != 0)
{
sum = sum + i;
}
i++;
} while (i <= 100);
System.out.println("1到100所有奇数的和为:" + sum);
//课后作业:
System.out.println("\n课后作业");
// 1、企业发放的奖金根据利润提成。
//利润低于或等于10万元时,奖金可提10%;
//利润高于10万元,低于或等于20万元时,高于10万元的部分,可提成7.5%;
//高于20万,低于或等于40万时,高于20万元的部分,可提成5%;
//高于40万,低于或等于60万时,高于40万元的部分,可提成3%;
//高于60万,低于或等于100万时,高于60万元的部分,可提成1.5%,
//高于100万元时,超过100万元的部分按1%提成,
//在程序中设定一个变量为当月利润,求应发放奖金总数?(知识点:条件语句) [必做题]
System.out.println("第一题");
double profit = 2000000, comm = 0.0;
System.out.println("您的当月利润为:" + profit);
if (profit <= 100000)
{
comm = profit * 0.1;
}
else if (100000 < profit && profit <= 200000)
{
comm = 10000 + (profit - 100000) * 0.075;
}
else if (200000 < profit && profit <= 400000)
{
comm = 10000 + (profit - 200000) * 0.05;
}
else if (400000 < profit && profit <= 600000)
{
comm = 10000 + (profit - 400000) * 0.03;
}
else if (600000 < profit && profit <= 1000000)
{
comm = 10000 + (profit - 600000) * 0.015;
}
else
{
comm = 10000 + (profit - 1000000) * 0.01;
}
System.out.println("应发奖金总数为:" + comm);
// 2、给定一个成绩a,使用switch结构求出a的等级。
//A:90-100,B:80-89,C:70-79,D:60-69,E:0~59(知识点:条件语句switch)
// [必做题]
System.out.println("\n第二题");
int a = 88;
System.out.println("你输入的成绩为:" + a);
switch (a/10)
{
case 9:
case 10:
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");
}
// 3、假设某员工今年的年薪是30000元,年薪的年增长率6%。
//编写一个Java应用程序计算该员工10年后的年薪,并统计未来10年(从今年算起)
总收入。(知识点:循环语句for)[选做题]
System.out.println("\n第三题");
double i2 = 30000, sum2 = 0;
for (i=1; i<=10; i++)
{
sum2 = sum2 + i2;
i2 = i2 + (i2 * 0.06);
}
System.out.println("未来10年的总收入为:¥" + (int)sum2);
// 4、猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,
//第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
//以后每天早上都吃了前一天剩下的一半零一个。
//到第10天早上想再吃时,见只剩下一个桃子了。
//求第一天共摘了多少。(知识点:循环语句 while)[选做题]
System.out.println("\n第四题");
int a1 = 1, a2 = 1, sum3 = 0;
while (a1 <= 10)
{
sum3 = sum3 +a2;
a2 = (a2 * 2) +1;
a1++;
}
System.out.println("第一天一共摘了:" + sum3 + "个桃子");
// 5、输入一个数字,判断是一个奇数还是偶数(知识点:条件语句) [必做题]
System.out.println("\n第五题");
int a3 = 112;
System.out.println("您输入的数字为:" + a3);
if ((a3%2) == 0)
{
System.out.println("您输入的数字为偶数!");
}
else
{
System.out.println("您输入的数字为奇数!");
}
// 6、编写程序, 判断一个变量x的值,
//如果是1,输出x=1,如果是5,输出x=5,如果是 10,输出x=10,
//除了以上几个值,都输出x=none。(知识点:条件语句) [必做题]
System.out.println("\n第六题");
int x2 = 2;
System.out.println("你输入的数字为:" + x2);
switch (x2)
{
case 1:
System.out.println("x=" + x2);
break;
case 5:
System.out.println("x=" + x2);
break;
case 10:
System.out.println("x=" + x2);
break;
default:
System.out.println("x=none");
}
// 7、判断一个数字是否能被5和6同时整除(打印能被5和6整除),
//或只能被5整除(打印能被5整除),或只能被6整除,(打印能被6整除),
//不能被5或6整除,(打印不能被5或6整除)(知识点:条件语句) [必做题]
System.out.println("\n第七题");
int a4 =18;
if (a4 % 5 == 0 && a4 % 6 == 0)
{
System.out.println("能被5和6整除");
}
else if (a4 % 5 == 0 && a4 % 6 != 0)
{
System.out.println("能被5整除");
}
else if (a4 % 5 != 0 && a4 % 6 == 0)
{
System.out.println("能被6整除");
}
else
{
System.out.println("不能被5或6整除");
}
// 8、输入一个年份,判断这个年份是否是闰年(知识点:条件、循环语句) [必做题]
System.out.println("\n第八题");
int year = 2012;
System.out.println("您输入的年份为:" + year);
if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
{
System.out.println("您输入的年份是闰年!");
}
else
{
System.out.println("您输入的年份不是闰年!");
}
// 9、输入一个0~100的分数,如果不是0~100之间,打印分数无效,
//根据分数等级打印A,B,C,D,E(知识点:条件语句if elseif) [必做题]
System.out.println("\n第九题");
int a5 = 345;
if (a5 >= 0 && a5 <= 100)
{
switch (a5/10)
{
case 9:
case 10:
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");
}
}
else
{
System.out.println("您输入的分数无效!");
}
// 10、输入三个整数x,y,z,请把这三个数由小到大输出(知识点:条件语句) [必做题]
System.out.println("\n第十题");
int x4 = 1, y1 = 3, z = 2, temp;
if (x4 > y1)
{
temp = x4;
x4 = y1;
y1 = temp;
}
if (x4 > z)
{
temp = x4;
x4 = z;
z = temp;
}
if (y1 > z)
{
temp = z;
z = y1;
y1 = temp;
}
System.out.println("从小到大输出为:" + x4 + " " + y1+ " " + z);
// 11、有一个不多于5位的正整数,求它是几位数,分别打印出每一位数字。
(知识点:条件语句)
// [必做题]
System.out.println("\n第十一题");
int a6 = 84374;
System.out.println("您输入的数字是:" + a6);
int r, r1, r2, r3, r4, sum5;
if ((a6 / 10000) >= 1)
{
System.out.println("您输入的数字为5位数!");
r = a6 / 10000; //取万位数
r1 = (a6 / 1000) % 10; //取千位数
r2 = (a6 / 100) % 10; //取百位数
r3 = (a6 % 100) / 10; //取十位数
r4 = a6 % 10; //取各位数
sum5 = r + r1 + r2 + r3 + r4;
System.out.println("各个位数相加为:" + sum5);
}
else if ((a6 / 1000) >= 1)
{
System.out.println("您输入的数字为4位数!");
r1 = (a6 / 1000) % 10; //取千位数
r2 = (a6 / 100) % 10; //取百位数
r3 = (a6 % 100) / 10; //取十位数
r4 = a6 % 10; //取各位数
sum5 = r1 + r2 + r3 + r4;
System.out.println("各个位数相加为:" + sum5);
}
else if ((a6 / 100) >= 1)
{
System.out.println("您输入的数字为3位数!");
r2 = (a6 / 100) % 10; //取百位数
r3 = (a6 % 100) / 10; //取十位数
r4 = a6 % 10; //取各位数
sum5 = r2 + r3 + r4;
System.out.println("各个位数相加为:" + sum5);
}
else if ((a6 / 10) >= 1)
{
System.out.println("您输入的数字为2位数!");
r3 = (a6 % 100) / 10; //取十位数
r4 = a6 % 10; //取各位数
sum5 = r3 + r4;
System.out.println("各个位数相加为:" + sum5);
}
else
{
System.out.println("您输入的数字为1位数!");
sum5 = a6;
System.out.println("各个位数相加为:" + sum5);
}
// 12、编写一个程序,计算邮局汇款的汇费。如果汇款金额小于100元,汇费为一元,
如果金额在
// 100元与5000元之间,按1%收取汇费,如果金额大于5000元,汇费为50元。
//汇款金额由命令行输入。(知识点:条件语句) [选做题]
// System.out.println("\n第十二题");
// Scanner scanner = new Scanner(System.in);
// System.out.println("请输入您要汇款的金额:");
// int mon = scanner.nextInt();
// double m = 0;
// if (mon < 100)
// {
// m =1;
// }
// else if (mon >= 100 && mon <= 5000)
// {
// m = mon * 0.01;
// }
// else
// {
// m = 50;
// }
// System.out.println("您此次汇款的金额需要缴纳的汇费为:" + m);
// 13、分别使用for循环,while循环,do循环求1到100之间所有能被3整除的整数的和。
// (知识点:循环语句) [选做题]
System.out.println("\n第十三题");
int sum6 = 0;
// for (i=1; i<=100; i++)
// {
// if (i % 3 == 0)
// {
// sum6 = sum6 + i;
// }
// }
// int i3 = 1;
// while (i3 <= 100)
// {
// if (i3 % 3 == 0)
// {
// sum6 = sum6 + i3;
// }
// i3++;
// }
int i4 = 0;
do {
if (i4 % 3 == 0)
{
sum6 = sum6 + i4;
}
i4++;
} while (i4 <= 100);
System.out.println("1到100之间所有能被3整除的整数的和为:" + sum6);
// 14、输出0-9之间的数,但是不包括5。 [选做题]
System.out.println("\n第十四题");
for (i=0; i<10; i++)
{
if (i != 5)
{
System.out.println(i);
}
}
// 15、编写一个程序,求整数n的阶乘,例如5的阶乘是1*2*3*4*5 [选做题]
System.out.println("\n第十五题");
int n = 10, m;
m = n;
int fa = n;
for (i=1; n>1; n--)
{
fa = fa * (n - 1);
}
System.out.println(m + " 的阶乘为: " + fa);
// 16、编写一个程序,找出大于200的最小的质数[选做题]
System.out.println("\n第十六题");
int n1 = 200;
while (true)
{
boolean b = true;
for (int j = 2; j< n1/2; j++)
{
if (n1 % j == 0) b = false;
}
if (b)
{
break;
}
n1++;
}
System.out.println("大于200的最小的质数为:" + n1);
// 17、由命令行输入一个4位整数,求将该数反转以后的数,
//如原数为1234,反转后的数位4321 [选做题]
int a7 = 9783;
System.out.println("您输入的数字是:" + a7);
int p1, p2, p3, p4;
p1 = a7 / 1000; //取千位数
p2 = (a7 / 100) % 10; //取百位数
p3 = (a7 % 100) / 10; //取十位数
p4 = a7 % 10; //取各位数
System.out.println("该数反转以后的数为:" + p4 + p3 + p2 + p1);
}
}