第三章流程控制語句練習和課後作業
阿新 • • 發佈:2019-02-11
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);
}
}