1:選擇結構
1、小王參加考試,如果成績大於85則獎勵平衡車一輛
1 import java.util.Scanner; 2 3 public class Text { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("請輸入你的考試成績"); 7 int score=input.nextInt(); 8 if (score>85){ 9 System.out.println("獎勵平衡車一輛"); 10 } 11 } 12 }
2、張三參加歌唱比賽如果得獎,就獎勵勞斯萊斯一輛,否則打掃衛生一年
1 public class Text1 { 2 public static void main(String[] args) { 3 Scanner input=new Scanner(System.in); 4 System.out.println("請輸入你的比賽名次"); 5 int score=input.nextInt(); 6 if (score==1){ 7 System.out.println("獎勵勞斯萊斯一輛"); 8 }else { 9 System.out.println("打掃衛生一年"); 10 } 11 } 12 }
3、小黑打算買車: 如果他有500萬就賣勞斯萊斯 如果他有200萬就買馬薩拉蒂;如果他有100萬就買寶馬;如果他有50萬卡迪拉克;如果他有10萬就買比亞迪; 如果他有5萬就買五菱宏光;否則就掃個共享單車
1 import java.util.Scanner; 2 3 public class Text2 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("請輸入你的錢數"); 7 int num=input.nextInt(); 8 if (num>=500){ 9 System.out.println("勞斯萊斯一輛"); 10 }else if (num>=200){ 11 System.out.println("瑪莎拉蒂一輛"); 12 }else if (num>=100){ 13 System.out.println("寶馬一輛"); 14 }else if (num>=50){ 15 System.out.println("凱迪拉克一輛"); 16 }else if (num>=10){ 17 System.out.println("比亞迪一輛"); 18 }else if (num>=5){ 19 System.out.println("五菱宏光一輛"); 20 }else { 21 System.out.println("掃個共享單車"); 22 } 23 } 24 }
4、寒冰參加歌唱比賽,如果獲得前16名就可以參加接下來的八強比賽,八強比賽要求根據歌手的性別進行分組
1 import java.util.Scanner; 2 3 public class Text3 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("請輸入你的名次"); 7 int score=input.nextInt(); 8 if (score<16){ 9 System.out.println("請輸入你的性別"); 10 String sex=input.next(); 11 if (sex.equals("男")){ 12 System.out.println("進入男子組"); 13 }else { 14 System.out.println("進入女子組"); 15 } 16 }else { 17 System.out.println("進入啦啦隊"); 18 } 19 } 20 }
5、使用switch實現輸出學生的評分等級,A:100,B:99-90,C:89-80,D:79-70,E:69-60,F:60以下
1 import java.util.Scanner; 2 3 public class Text4 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("請輸入你的成績"); 7 int score=input.nextInt(); 8 switch (score/10){ 9 case 10: 10 System.out.println("A"); 11 break; 12 case 9: 13 System.out.println("B"); 14 break; 15 case 8: 16 System.out.println("C"); 17 break; 18 case 7: 19 System.out.println("D"); 20 break; 21 case 6: 22 System.out.println("E"); 23 break; 24 default: 25 System.out.println("F"); 26 break; 27 28 } 29 } 30 }
6、使用switch實現簡單的+、-、*、/計算器
1 import java.util.Scanner; 2 3 public class Text5 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("請輸入a:"); 7 int a = input.nextInt(); 8 System.out.println("請輸入b:"); 9 int b = input.nextInt(); 10 System.out.println("請輸入"); 11 String str = input.next(); 12 switch (str){ 13 case "+": 14 System.out.println(a+b); 15 break; 16 case "-": 17 System.out.println(a-b); 18 break; 19 case "*": 20 System.out.println(a*b); 21 break; 22 case "/": 23 System.out.println(a/b); 24 break; 25 // default: 26 // System.out.println(); 27 // break; 28 } 29 } 30 }
7、實現水仙花數(三位數,153=1^3+5^3+3^3)
1 import java.util.Scanner; 2 3 public class Text6 { 4 public static void main(String[] args) { 5 //實現水仙花數(三位數,153=1^3+5^3+3^3) 6 Scanner input=new Scanner(System.in); 7 System.out.println("請輸入一個三位數"); 8 int num = input.nextInt(); 9 int bWei=num/100; 10 int sWei=num/10%10; 11 int gWei=num%10; 12 if (num==(bWei*bWei*bWei+sWei*sWei*sWei+gWei*gWei*gWei)){ 13 System.out.println("是一個水仙花數"); 14 }else { 15 System.out.println("不是水仙花數"); 16 } 17 18 } 19 }
8、輸入小明的考試成績,顯示所獲獎勵成績==100分,爸爸給他買輛車;100分>成績>=90分,媽媽給他買MP4;90分>成績>=60分,媽媽給他買本參考書;成績<60分,什么都不買(多重if)
1 import java.util.Scanner; 2 3 public class Text7 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("請輸入你的成績"); 7 int score=input.nextInt(); 8 if (score==100){ 9 System.out.println("獲得一輛車"); 10 }else if (score>=90 && score<100){ 11 System.out.println("獲得一個MP4"); 12 }else if (score>=60 && score<90){ 13 System.out.println("獲得一本參考書"); 14 }else { 15 System.out.println("什么都沒有"); 16 } 17 } 18 }
9、張三為他的手機設定了自動撥號按1:撥爸爸的號;按2:撥媽媽的號;按3:撥爺爺的號;按4:撥奶奶的號
1 import java.util.Scanner; 2 public class Text8 { 3 public static void main(String[] args) { 4 Scanner input=new Scanner(System.in); 5 System.out.println("請輸入號碼"); 6 int num=input.nextInt(); 7 switch (num){ 8 case 1: 9 System.out.println("撥爸爸的號"); 10 break; 11 case 2: 12 System.out.println("撥媽媽的號"); 13 break; 14 case 3: 15 System.out.println("撥爺爺的號"); 16 break; 17 case 4: 18 System.out.println("撥奶奶的號"); 19 break; 20 default: 21 System.out.println("撥打錯誤"); 22 break; 23 } 24 } 25 }
10、輸入一個數判定這個數是偶數還是奇數(if實現)
1 import java.util.Scanner; 2 3 public class Text9 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("請輸入一個數"); 7 int num = input.nextInt(); 8 if (num%2==0){ 9 System.out.println("這是一個偶數"); 10 }else { 11 System.out.println("這是一個奇數"); 12 } 13 } 14 }
11、輸入一個數,判定這個數是工作日,還是休息日(switch)
1 import java.util.Scanner; 2 3 public class Text10 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("請輸入一個數"); 7 int num = input.nextInt(); 8 switch (num){ 9 case 1: 10 case 2: 11 case 3: 12 case 4: 13 case 5: 14 System.out.println("工作日"); 15 break; 16 case 6: 17 case 7: 18 System.out.println("休息日"); 19 break; 20 } 21 } 22 }
12、一年有四季,每季3個月。其中,12月、1月和2月為冬季,3月、4月和5月為春季……本實例將根據用戶輸入的月份來判斷季節(用Switch語句實現)
1 import java.util.Scanner; 2 3 public class Text11 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("請輸入一個月份"); 7 int num = input.nextInt(); 8 switch (num){ 9 case 1: 10 case 2: 11 System.out.println("冬天"); 12 break; 13 case 3: 14 case 4: 15 case 5: 16 System.out.println("春天"); 17 break; 18 case 6: 19 case 7: 20 case 8: 21 System.out.println("夏天"); 22 break; 23 case 9: 24 case 10: 25 case 11: 26 System.out.println("秋天"); 27 break; 28 case 12: 29 System.out.println("冬天"); 30 break; 31 } 32 } 33 }
13、寫一個用戶登陸小程序,從控制台接收用戶名和密碼。 用戶名:uip 密碼:123456 如果用戶名錯誤輸出“非法用戶!”,如果密碼錯誤輸出“密碼錯誤!”,如果都正確輸出“恭喜,登陸成功“!(用if…else語句實現)
1 import java.util.Scanner; 2 3 public class Text12 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("請輸入用戶名"); 7 String name = input.next(); 8 if (name.equals("uip")){ 9 System.out.println("請輸入登陸密碼"); 10 String password=input.next(); 11 if (password.equals("123456")){ 12 System.out.println("恭喜,登陸成功!"); 13 }else { 14 System.out.println("密碼錯誤!"); 15 } 16 }else { 17 System.out.println("非法用戶!"); 18 } 19 } 20 }
14、讀入一個表示年份的整數,判斷這一年是否是閏年。如何判斷一個年份是否是閏年。(能被400整除或者被4整除不被100整除)
1 import java.util.Scanner; 2 3 public class Text13 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("請輸入一個年份"); 7 int year = input.nextInt(); 8 if ((year%400==0)||(year%4==0&&year%100!=0)){ 9 System.out.println("是一個閏年"); 10 }else { 11 System.out.println("不是一個閏年"); 12 } 13 } 14 }
2:循環結構
1、使用三種循環打印輸出100以內的數之和
1-1 while循環
1 public class Text10 { 2 public static void main(String[] args) { 3 int i=0; 4 int sum=0; 5 while (i<=100){ 6 sum=sum+i; 7 i++; 8 } 9 System.out.println(sum); 10 } 11 }
1-2 do.....while 循環
1 public class Text10 { 2 public static void main(String[] args) { 3 int i=0; 4 int sum=0; 5 do { 6 sum=sum+i; 7 i++; 8 }while (i<=100); 9 System.out.println(sum); 10 } 11 }
1-3 for循環
1 public class Text10 { 2 public static void main(String[] args) { 3 int sum=0; 4 for (int i = 0; i <=100 ; i++) { 5 sum=sum+i; 6 } 7 System.out.println(sum); 8 } 9 }
2、實現100-1000之間水仙花數(三位數,153=1^3+5^3+3^3)(153、370、371、407)
1 int i=100; 2 while (i<1000){ 3 int bWei=i/100; 4 int sWei=i/10%10; 5 int gWei=i%10; 6 if (i==bWei*bWei*bWei+sWei*sWei*sWei+gWei*gWei*gWei){ 7 System.out.println(i); 8 } 9 i++; 10 }
3、使用while、do-while以及for循環三種編程方式實現:計算100以內(包括100)的偶數,奇數之和
3-1 while
1 int i=0; 2 int sum=0; 3 while (i<=100){ 4 if (i%2==0){ 5 sum=sum+i; 6 } 7 i++; 8 } 9 System.out.println(sum);
3-2 do-while
1 int i=0; 2 int sum=0; 3 do { 4 if (i%2==0){ 5 sum=sum+i; 6 } 7 i++; 8 }while (i<=100); 9 System.out.println(sum);
3-3 for
1 int sum=0; 2 for (int i = 0; i <=100 ; i++) { 3 if (i%2==0){ 4 sum=sum+i; 5 } 6 } 7 System.out.println(sum); 8 }
4、打印100以內的所有奇數
1 public class Text13 { 2 public static void main(String[] args) { 3 for (int i = 0; i <100 ; i++) { 4 if (i%2!=0){ 5 System.out.println(i); 6 } 7 } 8 } 9 }
5、2012年培養學員25萬人,每年增長25%。請問按此增長速度,到哪一年培訓學員人數將達到100萬人?
1 public class Text14 { 2 public static void main(String[] args) { 3 int year=2012; 4 double i=25; 5 while (i < 100) { 6 year++; 7 i=i+i*0.25; 8 } 9 System.out.println(""+year+"年學員人數達到100萬人"); 10 } 11 }
6、讀入一個表示年份的整數,判斷這一年是否是閏年。如何判斷一個年份是否是閏年。(能被400整除或者被4整除不被100整除)
1 public class Text15 { 2 public static void main(String[] args) { 3 for (int i = 1900; i <2021 ; i++) { 4 if (i%400==0||i%4==0 && i%100!=0){ 5 System.out.println(i); 6 } 7 } 8 } 9 }
7、本金10000元存入銀行,年利率是千分之三,每過1年,將本金和利息相加作為新的本金。計算5年后,獲得的本金是多少
1 public class Text26 { 2 public static void main(String[] args) { 3 int i=0; 4 double num=10000; 5 while (i<5){ 6 num=num+num*0.03; 7 i++; 8 } 9 System.out.println("5年后獲得的本金為"+num); 10 } 11 }
8、計算1000以內所有不能被7整除的整數之和
1 public class Text16 { 2 public static void main(String[] args) { 3 int sum=0; 4 for (int i = 0; i <1000 ; i++) { 5 if (i%7!=0){ 6 sum=sum+i; 7 } 8 } 9 System.out.println(sum); 10 } 11 }
9、一張紙的厚度大約是0.08mm,對折多少次之后能達到珠穆朗瑪峰的高度(8848.13m)
1 public class Text27 { 2 public static void main(String[] args) { 3 double i=0.08; 4 double sum=0;//對折高度 5 int num=0;//對折次數 6 while (sum<=8848130){ 7 sum=sum+i; 8 i=i*2; 9 num++; 10 } 11 System.out.println(num); 12 } 13 }
10、使用三種循環計算能被3整除並且能被5整除的數之和
10-1 while
1 public class Text17 { 2 public static void main(String[] args) { 3 int i=0; 4 int sum=0; 5 while (i<100){ 6 if (i%3==0 && i%5==0){ 7 sum=sum+i; 8 } 9 i++; 10 } 11 System.out.println(sum); 12 } 13 }
11、循環輸出200到300之間所有能被5整除,或能被2整除並且能被3整除的數
1 public class Text18 { 2 public static void main(String[] args) { 3 for (int i = 200; i <300 ; i++) { 4 if (i%5==0||(i%2==0 && i%3==0)){ 5 System.out.println(i); 6 } 7 } 8 } 9 }
12、循環輸入5個學生的成績,計算這5個學生的總分,及平均分
1 import java.util.Scanner; 2 3 public class Text19 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int i=1; 7 int sum=0; 8 do { 9 System.out.println("輸入你的第"+i+"成績"); 10 int score = input.nextInt(); 11 i++; 12 sum=sum+score; 13 }while (i<=5); 14 System.out.println("成績總和為"+sum); 15 int avg=sum/5; 16 System.out.println("平均成績為"+avg); 17 } 18 }
13、輸出加法表
1 import java.util.Scanner; 2 3 public class Text8 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("請輸入一個數"); 7 int num=input.nextInt(); 8 for (int i = 0; i <=num; i++) { 9 System.out.println(i+"+"+(num-i)+"="+num); 10 } 11 } 12 }
14、打印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等於該數本身。例如:153是一個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。1.程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位
1 public class Text20 { 2 public static void main(String[] args) { 3 for (int i = 100; i <=999 ; i++) { 4 int b=i/100; 5 int s=i/10%10; 6 int g=i%10; 7 if (i==b*b*b+s*s*s+g*g*g){ 8 System.out.println(i); 9 } 10 } 11 } 12 }
15、一個5位數,判斷它是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同
1 public class Text22 { 2 public static void main(String[] args) { 3 int i=10000; 4 while (i<100000){ 5 int w=i/10000; 6 int q=i/1000%10; 7 int b=i/100%10; 8 int s=i/10%10; 9 int g=i%10; 10 if (g==w && s==q){ 11 System.out.println(i); 12 } 13 i++; 14 } 15 } 16 }
16、計算周一到周五的學習時間的平均值
1 import java.util.Scanner; 2 3 public class Text23 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int i=1; 7 int sum=0; 8 int time=0; 9 while (i<=5){ 10 System.out.println("請輸入周"+i+"的學習時間"); 11 time = input.nextInt(); 12 sum+=time; 13 i++; 14 } 15 System.out.println("學習總時長"+sum); 16 int avg=sum/5; 17 System.out.println("學習平均時長"+avg); 18 } 19 }
17、若干只雞兔同在一個籠子里,從上面數,有35個頭,從下面數,有94只腳。問籠中各有多少只雞和兔?
1 public static void main(String[] args) { 2 for (int j = 0; j <=35 ; j++) { 3 int t=35-j; 4 if (j*2+t*4==94){ 5 System.out.println("j"+j); 6 System.out.println("t"+t); 7 } 8 } 9 } 10 }
1 import java.util.Scanner; 2 3 public class Text30 { 4 public static void main(String[] args) { 5 //從控制台輸入一個正整數,計算該數的階乘。例如輸入5,階乘為 5*4*3*2*1 6 Scanner input=new Scanner(System.in); 7 System.out.println("請輸入一個正整數"); 8 int i = input.nextInt(); 9 int sum=i; 10 while (i>1){ 11 i--; 12 sum=sum*i; 13 System.out.println(sum); 14 } 15 } 16 }
19、用循環做出九九乘法表
1 public class Text31 { 2 public static void main(String[] args) { 3 for (int i = 1; i <=9 ; i++) { 4 for (int j = 1; j <=i ; j++) { 5 System.out.print(i+"*"+j+"="+i*j+" "); 6 } 7 System.out.println(); 8 } 9 } 10 }
20、可以從控制台連續輸入數字,當輸入的數字為0時不可以再輸入。
1 import java.util.Scanner; 2 3 public class Text32 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int i; 7 do { 8 System.out.println("請輸入一個數字"); 9 i = input.nextInt(); 10 System.out.println(i); 11 }while (i!=0); 12 13 } 14 }
21、計算 1+2-3+4-5+6-7....+100的結果
1 public class Text33 { 2 public static void main(String[] args) { 3 int sum=0; 4 for (int i = 2; i <=100 ; i++) { 5 if (i%2==0){ 6 sum=sum+i; 7 }else { 8 sum=sum-i; 9 } 10 } 11 System.out.println(1+sum); 12 } 13 }
22、計算十位顧客年齡比例(計算30歲以上,和30歲以下的比率)
1 import java.util.Scanner; 2 3 public class Demo5 { 4 public static void main(String[] args) { 5 //統計30歲以上的人數 6 Scanner input=new Scanner(System.in); 7 int age=30; 8 double sum=0; 9 for (int i = 1; i <=10 ; i++) { 10 System.out.println("請輸入第"+i+"位客人年齡"); 11 age = input.nextInt(); 12 if (age>30){ 13 sum++; 14 } 15 } 16 System.out.println("30歲以上人數為"+sum); 17 System.out.println("30歲以上人員比率為"+(sum/10*100)+"%"); 18 } 19 }
23、循環輸入學生成績,並統計大於等於80分的學生比例(for實現,輸入循環的次數)
1 import java.util.Scanner; 2 3 public class Text35 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int score=80; 7 double num=0; 8 for (int i = 1; i <=10 ; i++) { 9 System.out.println("請輸入第"+i+"個學生成績"); 10 score = input.nextInt(); 11 if (score>=80){ 12 num++; 13 } 14 } 15 System.out.println("大於80分的學生人數為"+num); 16 System.out.println("大於80分學生比例為"+(num/10*100)+"%"); 17 } 18 }
24、打印
1 public class Text36 { 2 public static void main(String[] args) { 3 //打印 4 // * 5 // ** 6 // *** 7 // **** 8 // ***** 9 for (int i = 1; i <=5 ; i++) { 10 for (int j = 1; j <=i ; j++) { 11 System.out.print("*"); 12 } 13 System.out.println(); 14 } 15 } 16 }
25、輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。
1 import java.util.Scanner; 2 3 public class Text28 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("請輸入字符"); 7 String str = input.nextLine(); 8 System.out.println(str); 9 int zm=0; 10 int kg=0; 11 int sz=0; 12 int qt=0; 13 for (int i = 0; i <str.length() ; i++) { 14 char c = str.charAt(i); 15 if (c>'a'&& c<'z'||c>'A'&&c<'Z'){ 16 zm++; 17 }else if (c==' '){ 18 kg++; 19 }else if (c>'0'&&c<'9'){ 20 sz++; 21 }else { 22 qt++; 23 } 24 } 25 System.out.println("字母的數量"+zm); 26 System.out.println("空格的數量"+kg); 27 System.out.println("數字的數量"+sz); 28 System.out.println("其他的數量"+qt); 29 } 30 }
26、一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地時,共經過多少米?第10次反彈多高?
1 public class Text21 { 2 public static void main(String[] args) { 3 double high=100; 4 double distance=100; 5 int i=1; 6 while (i<=10){ 7 high=high/2; 8 distance=distance+high*2; 9 i++; 10 } 11 System.out.println(distance); 12 System.out.println(high); 13 } 14 }
27、喝飲料游戲,滿三瓶換一瓶,總共喝了多少瓶,基數50瓶
1 public class Demo2 { 2 public static void main(String[] args) { 3 int num=50; 4 for (int i = 1; i <=num; i++) { 5 if (i%3==0){ 6 num++; 7 } 8 } 9 System.out.println(num); 10 } 11 }
3:多重循環
1、用*拼一個菱形
1 public class Text23 { 2 public static void main(String[] args) { 3 //制作菱形 4 //上半部分 5 for (int i = 1; i <=4 ; i++) { 6 for (int j = 0; j <4-i ; j++) { 7 System.out.print(" "); 8 } 9 for (int a = 0; a <2*i-1 ; a++) { 10 System.out.print("*"); 11 } 12 System.out.println(); 13 } 14 //下半部分 15 for (int i = 1; i <4 ; i++) { 16 for (int j = 0; j <i ; j++) { 17 System.out.print(" "); 18 } 19 for (int b = 0; b <7-2*i; b++) { 20 System.out.print("*"); 21 } 22 System.out.println(); 23 } 24 } 25 }
1 public class Demo11 { 2 public static void main(String[] args) { 3 //九九乘法表 4 for (int i = 1; i <=9 ; i++) { 5 for (int j = 1; j <=i; j++) { 6 System.out.print(i+"*"+j+"="+i*j+" "); 7 } 8 System.out.println(); 9 } 10 } 11 }
3、制作5*5
1 public class Demo7 { 2 public static void main(String[] args) { 3 //5*5 4 for (int i = 1; i <=5 ; i++) { 5 for (int j = 1; j <=5 ; j++) { 6 System.out.print("*"); 7 } 8 System.out.println(); 9 } 10 } 11 }
4、用*打印直角三角形
1 public class Demo8 { 2 public static void main(String[] args) { 3 for (int i = 1; i <=5 ; i++) { 4 for (int j = 1; j <=i ; j++) { 5 System.out.print("*"); 6 } 7 System.out.println(); 8 } 9 } 10 }
5、制作平行四邊形
1 public class Demo9 { 2 public static void main(String[] args) { 3 for (int i = 1; i <=5 ; i++) { 4 for (int j = 5-i; j >0 ; j--) { 5 System.out.print(" "); 6 } 7 for (int a =1; a <=5 ; a++) { 8 System.out.print("*"); 9 } 10 System.out.println(); 11 } 12 } 13 }
6、制作三角形
1 public class Demo10 { 2 public static void main(String[] args) { 3 for (int i = 1; i <=5 ; i++) { 4 for (int a =0; a <5-i ; a++) { 5 System.out.print(" "); 6 } 7 for (int j = 0; j <2*i-1 ; j++) { 8 System.out.print("*"); 9 } 10 System.out.println(); 11 } 12 } 13 }
7、1900-2021 閏年 每行兩個
1 public class Text { 2 public static void main(String[] args) { 3 int count=0;//個數 4 for (int i = 1900; i <=2021 ; i++) { 5 if (i%400==0 || (i%4==0 && i%100!=0)){ 6 System.out.print(i+" ");//一整行輸出 7 count++; 8 if (count%2==0){ 9 System.out.println(" "); 10 } 11 } 12 } 13 } 14 }
8、循環錄入某學生5門課的成績並計算平均分,如果某分數錄入為負,停止錄入並提示錄入錯誤
1 import java.util.Scanner; 2 3 public class Text1 { 4 public static void main(String[] args) { 5 //方法一: 6 Scanner input=new Scanner(System.in); 7 int sum=0; 8 int i; 9 //獲得成績 10 for ( i = 1; i <=5 ; i++) { 11 System.out.println("請輸入第"+i+"門課程成績"); 12 int score=input.nextInt(); 13 if (score<0){ 14 System.out.println("錄入錯誤"); 15 break; 16 } 17 sum+=score; 18 } 19 if (i==6){ 20 System.out.println("課程總分為"+sum); 21 double avg=sum/5; 22 System.out.println("課程平均分為"+avg); 23 } 24 //方法二: 25 //Scanner input=new Scanner(System.in); 26 // int sum=0; 27 // boolean pd=false;//判斷 28 // for (int i = 1; i <=5 ; i++) { 29 // System.out.println("請輸入第"+i+"門課程成績"); 30 // int score=input.nextInt(); 31 // if (score<0){ 32 // pd=true; 33 // System.out.println("錄入錯誤"); 34 // break; 35 // } 36 // sum+=score; 37 // } 38 // if (pd==false) { 39 //System.out.println("課程總分為" + sum); 40 // double avg = sum / 5; 41 // System.out.println("課程平均分為" + avg); 42 // } 43 } 44 }
9、循環錄入Java課的學生成績,統計分數大於等於80分的學生比例
1 import java.util.Scanner; 2 3 public class Text2 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("請輸入學生人數"); 7 int num=input.nextInt(); 8 int count=0;//大於80分學生人數 9 for (int i = 1; i <=num ; i++) { 10 System.out.println("請輸入第"+i+"個學生成績"); 11 int score=input.nextInt(); 12 if (score<80){ 13 continue; 14 } 15 count++; 16 } 17 System.out.println("成績大於80分人數為"+count); 18 System.out.println("大於80分的學生比例為"+(count*1.0/num*100)+"%"); 19 } 20 }
10、1~10之間的整數相加,得到累加值大於20的當前數,使用循環進行累加,從1到10,判斷累加值是否大於20,大於20則跳出循環並打印當前值
1 public class Text3 { 2 public static void main(String[] args) { 3 int sum=0; 4 for (int i = 1; i <=10 ; i++) { 5 sum+=i; 6 if (sum>20){ 7 System.out.println(i); 8 System.out.println(sum); 9 break; 10 } 11 } 12 } 13 }
11、求1-10之間的偶數和,判斷當前是否為偶數,如果為奇數跳過,執行下一循環,如果為偶數,進行累加
1 public class Text4 { 2 public static void main(String[] args) { 3 int sum=0; 4 for (int i = 1; i <=10 ; i++) { 5 if (i%2==0){ 6 sum=sum+i; 7 continue; 8 } 9 } 10 System.out.println(sum); 11 } 12 }
12、使用循環輸出 100、95、90、85.......5;可嘗試使用for、while、do-while三種循環實現
1 public class Text5 { 2 public static void main(String[] args) { 3 //while 4 int i=100; 5 while (i>0){ 6 System.out.println(i); 7 i=i-5; 8 } 9 // //do-while 10 int a=100; 11 do { 12 System.out.println(a); 13 a-=5; 14 }while (a>0); 15 // //for 16 for (int j = 100; j >=5 ;j-=5 ) { 17 System.out.println(j); 18 } 19 } 20 }
13、從鍵盤輸入一位整數,當輸入1~7時,輸出“星期一”~“星期日”; 輸入其他數字時,提示用戶重新輸入
1 import java.util.Scanner; 2 3 public class Text6 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 for (int i = 1; i <=7 ; i++) { 7 System.out.println("請輸入一位整數"); 8 i=input.nextInt(); 9 switch (i){ 10 case 1: 11 System.out.println("星期一"); 12 break; 13 case 2: 14 System.out.println("星期二"); 15 break; 16 case 3: 17 System.out.println("星期三"); 18 break; 19 case 4: 20 System.out.println("星期四"); 21 break; 22 case 5: 23 System.out.println("星期五"); 24 break; 25 case 6: 26 System.out.println("星期六"); 27 break; 28 case 7: 29 System.out.println("星期日"); 30 break; 31 default: 32 System.out.println("請重新輸入"); 33 break; 34 } 35 } 36 } 37 }
14、使用雙重循環根據用戶輸入的數字,輸出如下圖形
1 import java.util.Scanner; 2 3 public class Text7 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("請輸入一個數字"); 7 int num=input.nextInt(); 8 for ( int i =1; i <=num ; i++) { 9 for (int j = 0; j<num-i ; j++) { 10 System.out.print(" "); 11 } 12 for (int a = 0; a <2*i-1; a++) { 13 System.out.print(i); 14 } 15 System.out.println(); 16 } 17 } 18 }
1、數組基本使用形式
1 public class Text8 { 2 public static void main(String[] args) { 3 //數據類型[] 數組名=new 數據類型[大小] 4 //聲明數組 5 int[] scores; 6 //分配空間 7 scores=new int[5]; 8 //給數組進行賦值 9 scores[0]=90; 10 scores[1]=88; 11 scores[4]=77; 12 //使用數組 13 System.out.println(scores[2]); 14 System.out.println(scores[4]); 15 //聲明並開辟空間 16 double[] height=new double[5];//0.0 17 String[] strs=new String[2];//null 18 char[] chars=new char[2];//空格( ) 19 boolean[] booleans=new boolean[2];//false 20 } 21 }
2、錄入學生的5門成績,使用數組
1 import java.util.Scanner; 2 3 public class Text9 { 4 public static void main(String[] args) { 5 //方法一: 6 int[] score={23,44,69,78,55}; 7 //方法二: 8 Scanner input=new Scanner(System.in); 9 int[] scores=new int[5]; 10 for (int i = 0; i <scores.length ; i++) { 11 System.out.println("請輸入第"+(i+1)+"個學生成績"); 12 scores[i]=input.nextInt(); 13 } 14 for (int i = 0; i <scores.length ; i++) { 15 System.out.print(scores[i]+" "); 16 } 17 } 18 }
3、輸入5個學生成績 求avg
1 public class Text10 { 2 public static void main(String[] args) { 3 int[] score={12,2,45,3,85}; 4 int sum=0; 5 // for (int i = 0; i <score.length ; i++) { 6 // sum+=score[i]; 7 // } 8 //增強for 9 for (int a:score) { 10 sum+=a; 11 } 12 double avg=sum/score.length; 13 System.out.println("平均分為"+avg); 14 } 15 }
4、有一個數列:8,4,2,1,23,344,12循環輸出數列的值,求數列中所有數值的和
1 import java.util.Scanner; 2 3 public class Text11 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int[] num=new int[7]; 7 int sum=0; 8 boolean pd=false; 9 for (int i = 0; i <num.length ; i++) { 10 System.out.println("請輸入第"+(i+1)+"個數"); 11 num[i]=input.nextInt(); 12 sum=sum+num[i]; 13 } 14 System.out.println("所有數值的和為"+sum); 15 } 16 }
5、有一個數列:8,4,2,1,23,344,12循環輸出數列的值,從鍵盤中任意輸入一個數據,判斷數列中是否包含此數
1 import java.util.Scanner; 2 3 public class Text12 { 4 public static void main(String[] args) { 5 int[] num={8,4,2,1,23,344,12}; 6 Scanner input=new Scanner(System.in); 7 System.out.println("請輸入一個數"); 8 int a=input.nextInt(); 9 boolean pd=false; 10 for (int nums:num) { 11 if (a==nums){ 12 pd=true; 13 break; 14 } 15 } 16 if (pd==true){ 17 System.out.println("包含此數"); 18 }else { 19 System.out.println("不包含此數"); 20 } 21 } 22 }
6、從鍵盤輸入本次Java考試五位學生的成績,求考試成績最高分
1 import java.util.Scanner; 2 3 public class Text13 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int[] score=new int[5]; 7 for (int i = 0; i <score.length ; i++) { 8 System.out.println("請輸入第"+(i+1)+"個學生成績"); 9 score[i]=input.nextInt(); 10 } 11 //獲得最大值、最小值 12 int max=score[0]; 13 int min=score[0]; 14 for (int a:score) { 15 if (a>max){ 16 max=a; 17 } 18 if (a<min){ 19 min=a; 20 } 21 } 22 System.out.println("最大值為"+max); 23 System.out.println("最小值為"+min); 24 } 25 }
7*、一組學員的成績{99,85,82,63, 60},將它們按降序排列。要增加一個學員的成績,將它插入成績序列,並保持降序
1 public class Text14 { 2 public static void main(String[] args) { 3 int[] score={99,85,82,63,60,-1}; 4 int num=88; 5 //找到要插入的位置 6 int index=-1; 7 for (int i = 0; i <score.length ; i++) { 8 if (num>score[i]){ 9 index=i; 10 break; 11 } 12 } 13 System.out.println("新插入的值的下標"+index); 14 //移位 15 for (int i =score.length-1; i >index ; i--) { 16 score[i]=score[i-1]; 17 } 18 //添加新值 19 score[index]=num; 20 for (int a:score) { 21 System.out.print(a+" "); 22 } 23 } 24 }
8、求出4家店的最低手機價格
1 import java.util.Scanner; 2 3 public class Text15 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int[] price=new int[4]; 7 for (int i = 0; i <4 ; i++) { 8 System.out.println("請輸入"+(i+1)+"家店的價格"); 9 price[i]=input.nextInt(); 10 } 11 //獲得最小值 12 int min=price[0]; 13 for (int a:price) { 14 if (a<min){ 15 min=a; 16 } 17 } 18 System.out.println("最低價為第"+min); 19 } 20 }
9、數組存儲5筆購物金額,在控制台輸出並計算總金額
1 import java.util.Scanner; 2 3 public class Text16 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int[] price=new int[5]; 7 int sum=0; 8 for (int i = 0; i <5 ; i++) { 9 System.out.print("請輸入"+(i+1)+"筆購物金額"); 10 price[i]=input.nextInt(); 11 sum+=price[i]; 12 } 13 for (int i = 0; i <price.length ; i++) { 14 System.out.println(price[i]); 15 } 16 System.out.println("總金額為"+sum); 17 } 18 }
10、輸出100到1000的水仙花數
1 import java.util.Scanner; 2 3 public class Text17 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int[] num=new int[900]; 7 for (int i =100; i <1000 ; i++) { 8 num[i-100]=i;//num[i]的第一個i值為0; 9 } 10 for (int a:num) { 11 int b=a/100; 12 int s=a/10%10; 13 int g=a%10; 14 if (a==b*b*b+s*s*s+g*g*g){ 15 System.out.println(a); 16 } 17 } 18 } 19 }
11、定義數組,存放5個學生的成績【成績值自己設定】獲得成績之和,平均成績,最小成績,最大成績。
1 import java.util.Scanner; 2 3 public class Text19 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int[] score=new int[5]; 7 int sum=0; 8 for (int i = 0; i <5 ; i++) { 9 System.out.println("請輸入第"+(i+1)+"個人的成績"); 10 score[i]=input.nextInt(); 11 sum=sum+score[i]; 12 } 13 System.out.println("總成績為"+sum); 14 double avg=sum/5; 15 System.out.println("平均成績為"+avg); 16 //獲得最小成績、最大成績 17 int max=score[0]; 18 int min=score[0]; 19 for (int a:score) { 20 if (a>max){ 21 max=a; 22 } 23 if (a<min){ 24 min=a; 25 } 26 } 27 System.out.println("最小成績為"+min); 28 System.out.println("最大成績為"+max); 29 } 30 }
12、定義一個長度為10的int數組,統計數組中的最大值、最小值、以及奇數和偶數的個數
1 import java.util.Scanner; 2 3 public class Text20 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int[] num= new int[10]; 7 int count=0; 8 for (int i = 0; i <10 ; i++) { 9 System.out.println("請輸入第"+(i+1)+"個數"); 10 num[i]=input.nextInt(); 11 } 12 int max=num[0]; 13 int min=num[0]; 14 for (int a:num) { 15 if (a>max){ 16 max=a; 17 } 18 if (a<min){ 19 min=a; 20 } 21 if (a%2==0){ 22 count++; 23 } 24 } 25 System.out.println("最大值為"+max); 26 System.out.println("最小值為"+min); 27 System.out.println("偶數個數為"+count); 28 System.out.println("奇數個數為"+(10-count)); 29 } 30 }
13、B哥去參加青年歌手大獎賽,有10個評委打分,(去掉一個最高一個最低)求平均分?
1 import java.util.Scanner; 2 3 public class Text21 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int[] num= new int[10]; 7 int sum=0; 8 for (int i = 0; i <10 ; i++) { 9 System.out.println("請輸入第"+(i+1)+"個分數"); 10 num[i]=input.nextInt(); 11 sum+=num[i]; 12 } 13 //獲得最大值、最小值 14 int max=num[0]; 15 int min=num[0]; 16 for (int a:num) { 17 if (a>max){ 18 max=a; 19 } 20 if (a<min){ 21 min=a; 22 } 23 } 24 double avg=(sum-max-min)/10; 25 System.out.println("平均分為"+avg); 26 } 27 }
1 public class Text18 { 2 public static void main(String[] args) { 3 //給定兩個同類型的數組,將其合並成一個數組 4 int[] num={1,2,6,7}; 5 int[] num1={2,7,9,20,9}; 6 int[] a=new int[num.length+num1.length]; 7 for (int i = 0; i <a.length; i++) { 8 if (i<num.length) { 9 a[i] = num[i]; 10 }else { 11 a[i]=num1[i-num.length]; 12 } 13 System.out.print(a[i]+"\t"); 14 } 15 } 16 }
1 public class Test26 { 2 public static void main(String[] args) { 3 //將指定數組中的數組元素進行反轉 4 //例如:{10,23,2,45,6}—>{6,45,2,23,10} 5 int[] a={10,23,2,45,6}; 6 for (int i = 0; i <a.length ; i++) { 7 System.out.print(a[i]+"\t"); 8 } 9 for (int i = 0; i <a.length/2 ; i++) { 10 int temp=a[i]; 11 a[i]=a[a.length-1-i]; 12 a[a.length-1-i]=temp; 13 } 14 for (int i = 0; i <a.length ; i++) { 15 System.out.print(a[i]+"\t"); 16 } 17 } 18 }
16、現在定義如下的一個數組:intoldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5},要求將以上數組中值為0的去掉,將不為0的值存入一個新的數組,生成的新數組為:intnewArr[]={1,3,4,5,6,6,5,4,7,6,7,5}
1 public class Text25 { 2 public static void main(String[] args) { 3 // 現在定義如下的一個數組: 4 // intoldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}, 5 // 要求將以上數組中值為0的去掉,將不為0的值存入一個新的數組, 6 // 生成的新數組為:intnewArr[]={1,3,4,5,6,6,5,4,7,6,7,5} 7 int[] a={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}; 8 for (int i = 0; i <a.length ; i++) { 9 if (a[i]==0){ 10 continue; 11 } 12 System.out.print(a[i]+" "); 13 } 14 } 15 }
17、給定一個整型數組,數組成員10個,求該數組中第二大的數的下標
1 public class Test27 { 2 public static void main(String[] args) { 3 //給定一個整型數組,數組成員10個,求該數組中第二大的數的下標 4 int[] num={12,45,23,77,43,21,9,22,34,8,-1}; 5 int index=-1; 6 //找到最大值及下標 7 int max=num[0]; 8 for (int i = 0; i <num.length ; i++) { 9 if (num[i]>max){ 10 max=num[i]; 11 index=i; 12 } 13 } 14 System.out.println("最大值為"+max); 15 System.out.println("最大值下標為"+index); 16 //將數組最大值賦值給最后一位,並將最大值賦值為0 17 num[10]=num[index]; 18 num[index]=0; 19 int max1=num[0]; 20 for (int i = 0; i <num.length-1 ; i++) { 21 if (num[i]>max1){ 22 max1=num[i]; 23 index=i; 24 } 25 } 26 System.out.println("最大值為"+max1); 27 System.out.println("最大值下標為"+index); 28 } 29 }
1 public class Test1 { 2 public static void main(String[] args) { 3 int[] nums={45,2,7,1,9}; 4 for (int i = 0; i <nums.length-1 ; i++) { 5 for (int j = 0; j <nums.length-1-i ; j++) { 6 //兩兩比較小靠前 7 if(nums[j]<nums[j+1]){ 8 int temp=nums[j]; 9 nums[j]=nums[j+1]; 10 nums[j+1]=temp; 11 } 12 } 13 } 14 15 for (int a:nums) { 16 System.out.print(a+"\t"); 17 } 18 } 19 }
1 public class Test2 { 2 public static void main(String[] args) { 3 int[] scores={5,8,2,1,9}; 4 //排序 5 Arrays.sort(scores); 6 for (int a:scores) { 7 System.out.print(a+" "); 8 } 9 //查找 10 int i = Arrays.binarySearch(scores, 8); 11 System.out.println(i); 12 } 13 }
1 public class Test3 { 2 public static void main(String[] args) { 3 int[] scores={56,2,89,4,7,1}; 4 Arrays.sort(scores); //1,2,4,7,56,89 5 int key=4;//查找的數 6 int low=0;//最低下標 7 int high=scores.length-1;//最大下標 8 while (low<=high){ 9 int mid=(low+high)>>>1;//找到中間下標 10 int midValue=scores[mid];//獲得中間下標值 11 if(midValue<key){//當前值和要查找的值比較 12 low=mid+1; 13 }else if(midValue>key){ 14 high=mid-1; 15 }else{ 16 System.out.println(mid); 17 break; 18 } 19 } 20 } 21 }