**-----分支題-----**
1、定義一個int類型的變量爲x並賦值爲5,如果x<10,則讓x實現自增,並輸出x最後的值。
package com.eduask; //包名
public class Test { //類
public static void main(String[] args) { //主函數
int x=5; //聲明一個int類型的變量並初始化值爲5
if(x<10){ //if分支,如果x的值小於10,x=5,符合題意,進入分支
x++; //x實現自增1,x=6
}
System.out.println(x); //打印出x的值
}
}
2、隨意輸入一個數字a,若a>20,輸出a的值。
package com.eduask; //包名
import java.util.Scanner;//引入Scanner類
public class Test { //類
public static void main(String[] args) { //主函數
Scanner sc=new Scanner(System.in);//控制檯輸入函數Scanner
System.out.println("請隨意輸入一個數字:");//打印提示用戶輸入語句
int a=sc.nextInt(); //接受用戶輸入
if(a>20){ //分支,布爾表達式a>20爲判斷條件
System.out.println("a="+a); //a的值大於20則打印a的值
}else{
System.out.println("請輸入大於20的數字"); //否則提示用戶此值太小
}
}
}
3、定義一個int類型的變量成績爲59,如果成績大於等於60,則輸出成績及格,否則,輸出成績不及 格。
package com.eduask; //包名
import java.util.Scanner;//引入Scanner類
public class Test { //類
public static void main(String[] args) { //主函數
int score=59;//聲明一個int類型的變量score並初始化值爲59;
if(score>=60){ //如果score大於等於60
System.out.println("成績及格");//則打印成績及格
}else{
System.out.println("成績不及格");//否則成績不及格
}
}
}
4、編程輸入整數a和b,若a或b大於100,則輸出a,b的和與100的差,否則輸出兩數之和。
package com.eduask; //包名
import java.util.Scanner;//引入Scanner類
public class Test { //類
public static void main(String[] args) { //主函數
Scanner sc=new Scanner(System.in);//控制檯輸入函數
System.out.println("請輸入整數a:");//提示用戶輸入整數a
int a=sc.nextInt(); //接受輸入
System.out.println("請輸入整數b:");//提示用戶輸入整數b
int b=sc.nextInt();//接受輸入
if(a>100||b>100){ //a或b大於100的條件判斷
System.out.println("a+b-100="+(a+b-100));//若滿足,則輸出a,b的和與100的差
}else{
System.out.println("a+b="+(a+b));//否則輸出兩數之和
}
}
}
5、從鍵盤輸入三角形的三邊長,判斷出這三邊能否構成三角形
package com.eduask; //包名
import java.util.Scanner;//引入Scanner類
public class Test { //類
public static void main(String[] args) { //主函數
Scanner sc=new Scanner(System.in); //控制檯輸入函數Scanner
System.out.println("請輸入第一條邊a:"); //三角形第一條邊
int a=sc.nextInt();
System.out.println("請輸入第二條邊b:"); //第二條邊
int b=sc.nextInt();
System.out.println("請輸入第三條邊:");//第三條邊
int c=sc.nextInt();
if(a+b>c&&a+c>b&&b+c>a&&a-b<c&&a-c<b&&b-c<a){ //構成三角形的條件
System.out.println("您輸入的數字能構成一個三角形");
}else{
System.out.println("不滿足條件,不能構成三角形");
}
}
}
6、隨便輸入一個數,判斷該數爲奇數還是偶數;
package com.eduask; //包名
import java.util.Scanner;//引入Scanner類
public class Test { //類
public static void main(String[] args) { //主函數
Scanner sc=new Scanner(System.in); //控制檯輸入語句
System.out.println("請隨意輸入一個數:"); //提示輸入
int input=sc.nextInt();
if(input%2==0){ //取餘,若有餘數爲奇數,無餘數爲偶數
System.out.println("您輸入的數字爲偶數");
}else{
System.out.println("您輸入的數字爲奇數");
}
}
}
7、寫程序輸出一個圓的面積;
package com.eduask; //包名
import java.util.Scanner;//引入Scanner類
public class Test { //類
public static void main(String[] args) { //主函數
Scanner sc=new Scanner(System.in); //控制檯輸入語句
System.out.println("請隨意輸入圓的半徑:"); //提示輸入
double r=sc.nextDouble();
final double PI=3.14; //定義圓的PI函數
System.out.println("圓的面積爲:"+PI*r*r);//求出圓的面積
}
}
8、根據輸入的月份,判斷該月份有多少天
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
System.out.println("這個月有31天");
}else if(month==4||month==6||month==9||month==11){
System.out.println("這個月有30天");
}else if(month==2){
//根據年份 選擇2月多少天
if(year%400==0||(year%4==0&&year%100!=0)){
System.out.println("29");
}else{
System.out.println("28");
}
}else{
System.out.println("輸入有誤!");//錯誤提示
}
9、輸入員工登記A、B、C級,判斷其是否加薪,加薪對應500、300、100(switch語句)
package com.eduask; //包名
import java.util.Scanner;//引入Scanner類
public class Test { //類
public static void main(String[] args) { //主函數
Scanner sc=new Scanner(System.in);
System.out.println("請輸入您的等級:");
char input=sc.next().charAt(0);
switch(input){
case 'A':
System.out.println("加500");
break;
case 'B':
System.out.println("加300");
break;
case 'C':
System.out.println("加100");
break;
default:
System.out.println("您沒有等級");
break;
}
}
}
10、隨意輸入一個數字1-7,判斷是周幾,輸入其他數字提示輸入錯誤。(switch語句寫)
package sore_hs_jdbc;
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入1-7間的數字:");
int input =sc.nextInt();
switch(input){
case 1:
System.out.println("週一");
break;
case 2:
System.out.println("週二");
break;
case 3:
System.out.println("週三");
break;
case 4:
System.out.println("週四");
break;
case 5:
System.out.println("週五");
break;
case 6:
System.out.println("週六");
break;
case 7:
System.out.println("週日");
break;
default:
System.out.println("您輸入的數字有誤,請重新輸入");
break;
}
}
}
11、聲明顏色種類爲5種;分別有紅、綠、黃、粉、藍,若用戶輸入其中一種,則得到其RGB值;若用戶 輸入皆不滿足該條件,則輸出黑色的RGB值;
package sore_hs_jdbc;
import java.awt.Color;
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請隨意輸入1-5之間的數:");
int colorNum=sc.nextInt();
switch(colorNum){
case 1:
System.out.println(Color.red);
break;
case 2:
System.out.println(Color.green);
break;
case 3:
System.out.println(Color.yellow);
break;
case 4:
System.out.println(Color.pink);
break;
case 5:
System.out.println(Color.blue);
break;
default:
System.out.println(Color.black);
break;
}
}
}
**-----循環-----**
1、打印1--4之間的自然數。
package sore_hs_jdbc;
public class Test {
public static void main(String[] args) {
for(int i=1;i<=4;i++){
System.out.println(i);
}
}
}
2、實現求1-10這10個數字的和 。
package sore_hs_jdbc;
public class Test {
public static void main(String[] args) {
int sum=0;
for(int i=1;i<=10;i++){
System.out.println("sum="+sum+";i="+i);
sum=sum+i;
}
}
}
3、實現求1-100之和 。
package sore_hs_jdbc;
public class Test {
public static void main(String[] args) {
int sum=0;//存和
for(int i=1;i<=100;i++){
sum=sum+i;
}
System.out.println(sum);
}
}
4、輸出1-100之間的偶數 。
package sore_hs_jdbc;
public class Test {
public static void main(String[] args) {
System.out.print("偶數爲:");
for(int i=1;i<=100;i++){
if(i%2==0){
System.out.print(i+" ");
}
}
}
}
5、計算10的階乘
package sore_hs_jdbc;
public class Test {
public static void main(String[] args) {
int jiecheng=1;//存放階乘積
for(int i=1;i<=10;i++){
jiecheng=jiecheng*i;
}
System.out.println("階乘="+jiecheng);
}
}
6、用戶輸入一個1--10以內的數字,通過運算求出該數字的階乘
package sore_hs_jdbc;
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入1-10之間的任意整數");
int a=sc.nextInt();
if(a>=1&&a<=10){
int jiecheng=1;
for(int i=1;i<=a;i++){
jiecheng=jiecheng*i;
System.out.println("jiecheng="+jiecheng);
}
}else{
System.out.println("您的輸入不合法");
}
}
}
7、.由輸入的值決定循環的執行次數,循環變量默認從1開始 。
package sore_hs_jdbc;
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請隨意輸入一個整數");
int count=sc.nextInt();
for(int i=1;i<=count;i++){
System.out.println(i);
}
}
}
8、手動輸入兩個數字m和n,運算求出m~n之間所有偶數的和
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請隨意一個數m");
int m=sc.nextInt();
System.out.println("請輸入一個數n");
int n=sc.nextInt();
int sum=0;//存儲和
if(m>n){
for(int i=n;i<=m;i++){
if(i%2==0){
sum+=i;
}
}
System.out.println("sum="+sum);
}else if(m<n){
for(int i=m;i<=n;i++){
if(i%2==0){
sum+=i;
}
}
System.out.println("sum="+sum);
}else if(m==n){
if(m%2==0||n%2==0){
sum=n+m;
System.out.println("sum="+sum);
}else{
System.out.println("您輸入的數字不是偶數");
}
}else{
System.out.println("您輸入的數字不合法");
}
}
}
9、已知1×2×3×…×n=s,計算出s不大於5000時n的最大值。
public class Test {
public static void main(String[] args) {
int s = 1;//存儲s的和
for(int n=1; ;n++){
s*=n;
if (s>5000) {
System.out.println(n-1);//s大於5000時,n回退一步即s不大於5000時的值
break;
}
}
}
}
10、輸入五個數,通過運算,求出這五個數最大值或最小值。
package com.jdbc.add;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int max=0;//最大數
int min=0;//最小數
for(int i=1;i<=5;i++){
System.out.println("請輸入第"+i+"數字:");
int input=sc.nextInt();
if(i==1){
min=input;
max=input;
}else{
if(input>max){
max=input;
}else if(input<min){
min=input;
}
}
}
System.out.println("max="+max);
System.out.println("min="+min);
}
}
11、求1到100的奇數之和、偶數之和
package com.jdbc.add;
public class Test {
public static void main(String[] args) {
int count=0;//偶數和
int sum=0;//奇數和
for(int i=1;i<=100;i++){
if(i%2==0){//偶數
count=count+i;
}else if(i%2!=0){
sum=sum+i;
}
}
System.out.println("count="+count);
System.out.println("sum="+sum);
}
}
12、把100——200中不能被3整除的數輸出,每四個換一行輸出 。
package com.jdbc.add;
public class Test {
public static void main(String[] args) {
int count = 0;
for(int i=100; i<=200; i++){
if (i%3 != 0) {
count++;
System.out.print(i+" ");
if (count%4 == 0) {
System.out.println(" ");
}
}
}
}
}
13、計算機隨機產生一個整數,用戶進行猜數。只能猜三次。例:用戶未猜正確,輸入數太大或小進行提示,滿三次過後,提示再見。
package com.jdbc.add;
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
for(int i=1;i<4;i++){
System.out.println("請輸入您猜的數:"+"您還有"+(4-i)+"次機會");
int input=sc.nextInt();
int a=(int)(Math.random()*10);
System.out.println("生成的隨機數爲:"+a);
if(i>=1&&i<3){
if(input>a){
System.out.println("您輸入的數字太大");
}else if(input<a){
System.out.println("您輸入的數字太小");
}else if(input==a){
System.out.println("恭喜您,猜對啦");
break;
}
}else if(i==3){
System.out.println("您的操作已超過三次,再見");
break;
}
}
}
}
14、隨機生成一個數(範圍自定),直到生成的數是88,則跳出循環,並統計一共執行了多少次(使用
break) 。
package com.jdbc.add;
public class Test {
public static void main(String[] args) {
int count=0;//一共執行了count次
for(;;){
int num=(int)(Math.random()*100);
count++;
if(num==88){
System.out.println("count="+count);
break;
}
}
}
}
15、判斷一下1-10000之間有多少個7的倍數
package com.jdbc.add;
public class Test {
public static void main(String[] args) {
int count=0;//count個數是7的倍數
for(int i=1;i<=10000;i++){
if(i%7==0){
count++;
}
}
System.out.println(count);
}
}
16、有一羣豬(100-200之間),如果分成4個豬一組,則多2個豬;若分成7個豬一組則多3個豬;若分成9
個豬一組,則多5個豬,試求出豬的總數.
package com.jdbc.add;
import java.util.*;
public class Test {
Scanner sc=new Scanner(System.in);
public static void main(String[] args) {
for(int i=100;i<=200;i++){
if(i%4==2&&i%7==3&&i%9==5){
System.out.println("豬的總數爲="+i);
}
}
}
}
17、通過年齡,算出你的出生年份,並輸出結果:xx年,你xx歲。
package com.jdbc.add;
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入您的年齡:");
int nl=sc.nextInt();
int nf=2016;
int csnf=nf-nl;//出生年份
for(int i=0;i<=nf;i++){
nl++;
csnf--;
System.out.println("您輸入的年齡是"+(nl-1)+",您的出生年齡是"+(csnf+1));
}
}
}
18、有1、2、3、4個數字,能組成多少個無重複數字的三位數?都是多少?
package com.jdbc.add;
import java.util.*;
public class Test {
Scanner sc=new Scanner(System.in);
public static void main(String[] args) {
int count=0;
for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
if(i!=j&&i!=k&&j!=k){
System.out.print(i+j*10+k*100+" ");
count++;
}
}
}
}
System.out.println("共"+count+"個");
}
}
19、(1*1)+(1*2)+(1*2*3)+(1*2*3*4)+(1*2*3*4*5);共5次積相加
package com.jdbc.add;
public class Test {
public static void main(String[] args) {
int sum=0;
int jiecheng=1;
for(int i=1;i<=5;i++){
jiecheng*=i;
sum+=jiecheng;
System.out.println("jiecheng="+jiecheng);
}
System.out.println("sum="+sum);
}
}
20、畫出下列圖形
*******
******
*****
****
***
**
*
package com.jdbc.add;
public class Test {
public static void main(String[] args) {
for(int count =1;count <= 7;count ++){
for(int x=8;x>count;x--){
System.out.print("*");
}
System.out.println();
}
}
}
21、畫出下列圖形
*
**
***
****
*****
package com.jdbc.add;
public class Test {
public static void main(String[] args) {
for(int count=1;count<=5;count++){
for(int x=1;x<=count;x++){
System.out.print("*");
}
System.out.println();
}
}
}
22、畫出下列圖形
*******
*****
***
*
package com.jdbc.add;
public class Test {
public static void main(String[] args) {
for(int count=1;count<=4;count++){ //打印行數
for(int page=0;page<count;page++){ //打印空格數
System.out.print(" ");
}
for(int x=7;x>=count*2-1;x--){//打印*數
System.out.print("*");
}
System.out.println(); //換行
}
}
}
23、畫出下列圖形
*
***
*****
*******
*****
***
*
package com.jdbc.add;
public class Test {
public static void main(String[] args) {
for(int count=1;count<=7;count++){ //共7行
System.out.println();
if(count<=4){//打印前4行
for(int page=3;page>=count;page--){//打印空格
System.out.print(" ");
}
for(int x=1;x<=count*2-1;x++){
System.out.print("*");
}
}else{//打印後三行
for(int page=5;page<=count;page++){
System.out.print(" ");
}
for(int x=5;x>count*2-10;x--){
System.out.print("*");
}
}
}
}
}
24、婚禮上的謊言
三個新郎爲A、B、C,三個新娘爲X、Y、Z。
有人想知道究竟誰和誰結婚,
於是就問新人中的三位,得到如下提示:
A說他將和X結婚;A!=X
X說她的未婚夫是C,X!=C
C說他將和Z結婚。C!=Z
這個人事後知道他們在開玩笑,全是假話,
那麼,究竟誰與誰結婚呢?
package com.jdbc.add;
public class Test {
public static void main(String[] args) {
for(char A='X';A<='Z';A++){
for(char B='X';B<='Z';B++){
for(char C='X';C<='Z';C++){
if(A!='X'&&'X'!=C&&C!='Z'&&A!=B&&A!=C&&B!=C){
System.out.println("A="+A);
System.out.println("B="+B);
System.out.println("C="+C);
}
}
}
}
}
}
25、我國古代數學家張丘建在'算經'裏曾提出一個世界數學史上有名的百雞問題:'雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一;百錢買百雞,問雞翁、母、雛各幾何?
package com.jdbc.add;
public class Test {
public static void main(String[] args) {
for(int w=0;w<=20;w++){
for(int m=0;m<=33;m++){
for(int c=0;c<=300;c++){
if(w+m+c==100&&w*5+m*3+c/3==100&&c%3==0){
System.out.println("w="+w+" "+"m="+m+" "+"c="+c);
}
}
}
}
}
}
26、三個班的同學參加比賽,每個班五名同學,
1.求出各班的總分和平均分
2.求出各班的最高分
3.求出全部分數中的最高分
package com.jdbc.add;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
double maxscore=0;//全部的最高分
for(int i=0;i<3;i++){//3個班
double sum=0;//總分
double ava=0;//平均分
double max=0;//各班最高分
for(int j=0;j<5;j++){
System.out.println("請輸入第"+(i+1)+"個班,第"+(j+1)+"個同學的分數");
double s=sc.nextDouble();
sum+=s;//總分
ava=sum/5;//平均分
if(s==1){
max=s;
}else if(s>max){
max=s;//最大分數
}
}
System.out.println("第"+(i+1)+"個班的總分爲"+sum);
System.out.println("第"+(i+1)+"個班的平均分爲"+ava);
System.out.println("第"+(i+1)+"個班的最高分爲"+max);
if(max>maxscore){
maxscore=max;
}
}
System.out.println("所有班級中最高的分數爲:"+maxscore);
}
}
27、模擬註冊以及登陸:
1.註冊不知道用戶的操作次數,所以需要使用死循環
2.當用戶確定了用戶名和密碼後,註冊成功,保存下用戶輸入的用戶名以及密碼
3.登陸最多隻能三次,如果第三次還沒有成功直接退出程序
package com.jdbc.add;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String name;
String pwd;
for(;;){ //死循環,註冊
System.out.println("請輸入註冊name");
name=sc.next();
System.out.println("請輸入註冊pwd:");
pwd=sc.next();
System.out.println("是否確認:y/n");
char sure=sc.next().charAt(0);
if(sure=='Y'||sure=='y'){
System.out.println("success");
break;
}else{
System.out.println("error,請重新輸入");
}
}
for(int i=1;i<=3;i++){ //登錄
System.out.println("請輸入您的name:");
String name_l=sc.next();
System.out.println("請輸入您的pwd:");
String pwd_l=sc.next();
if(name_l.equals(name)&&pwd_l.equals(pwd)){
System.out.println("success");
break;
}else{
System.out.println("名字或密碼錯誤,你還有"+(3-i)+"次機會登錄");
}if(i==3){
System.out.println("號碼已凍結,再見");
break;
}
}
}
}
===========================================================================
String username="";
String password="";
for(;;){//註冊
System.out.println("請輸入您要註冊的用戶名:");
username=sc.next();
System.out.println("請輸入您要註冊的密碼:");
password=sc.next();
System.out.println("請確認密碼:");
String pwd=sc.next();
if(pwd.equals(password)){
System.out.println("密碼一致,註冊成功");
}else{
System.out.println("密碼不一致,請重新註冊");
continue;
}
for(int i=1;i<=3;i++){//登錄
System.out.println("請輸入您的登錄名:");
String name=sc.next();
System.out.println("請輸入您的密碼:");
String pwd1=sc.next();
if(name.equals(username)&&pwd1.equals(password)){
System.out.println("登錄成功");
System.exit(0);
}else{
System.out.println("密碼或用戶名錯誤,您還有"+(3-i)+"次機會");
}
if(i==3){
System.out.println("您的號碼已凍結,再見");
System.exit(0);
}
}
}
28、隨意輸入一個數判斷是否爲質數(標記)
package com.jdbc.add;
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入一個數");
int a=sc.nextInt();
boolean flag=true;//條件爲真時,爲標記,質數:大於1,質因數只有1和本身
if(a>=2){
for(int i=2;i<a;i++){
if(a%i==0){
flag=false;
}
}
if(flag){
System.out.println("質數");
}else{
System.out.println("不是質數");
}
}else{
System.out.println("您輸入的數字不合法");
}
}
}
29、輸出乘法口訣
package com.jdbc.add;
public class Test {
public static void main(String[] args) {
for(int i=1;i<10;i++){
for(int j=1;j<i+1;j++){
System.out.print(j+"*"+i+"="+(j*i)+" ");
}
System.out.println();
}
}
}
30、用循環方式實現和計算機玩猜拳的程序 (設定勝出條件--輸3次或贏3次即退出)
package com.sore.preparedstatement;
import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int o=0;
int r=0;
for(;;){
System.out.println("請出拳(1.表示石頭、2.表示剪刀、3.表示布)");
int p = sc.nextInt();
switch (p){
case 1:
System.out.println("用戶出的石頭、");
break;
case 2:
System.out.println("用戶出的剪刀、");
break;
case 3:
System.out.println("用戶出的布、");
break;
}
int q = (int)(Math.random()*3+1);
switch (q){
case 1:
System.out.println("電腦出的石頭、");
break;
case 2:
System.out.println("電腦出的剪刀、");
break;
case 3:
System.out.println("電腦出的布、");
break;
}
if((p==1 && q ==2) || (p==2 && q ==3) || (p==3 && q ==1) ){
System.out.println("用戶猜拳贏了");
o++;
}else if ((p==1 && q ==3) || (p==2 && q ==1) || (p==3 && q ==2) ){
System.out.println("用戶猜拳輸了");
r++;
}else if (p==q){
System.out.println("平局");
}else{
System.out.println("輸入有誤");
}if(o == 3){
System.out.println("你是最後的贏家");
break;
}if(r == 3){
System.out.println("電腦是最後的贏家");
break;
}
}
}
}
**-----數組-----**
1、定義一個數組,由鍵盤輸入值來賦值,並輸出該數組的各值
package com.sore.preparedstatement;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a[]=new int[5];//聲明一維數組長度爲5;
for(int i=0;i<a.length;i++){ //循環輸入5個數並將值賦給數組a[i]
System.out.println("請輸入第"+(i+1)+"個數");
a[i]=sc.nextInt(); //接收輸入
}
System.out.println("數組的數依次爲:");
for(int i=0;i<a.length;i++){ //循環得到5個數
System.out.println("a["+i+"]="+a[i]);
}
}
}
2、用隨機數給一個整型數組賦值,並對數組求和。(範圍自定)
package com.sore.preparedstatement;
public class Test {
public static void main(String[] args) {
int a[]=new int[5];//定義一維數組並聲明數組長度
int sum=0;//求和
for(int i=0;i<a.length;i++){
a[i]=(int)(Math.random()*10); //得到隨機數並將值賦給數組
}
System.out.println("數組的值爲:");
for(int i=0;i<a.length;i++){
System.out.println("a["+i+"]="+a[i]);
sum+=a[i]; //求和
}
System.out.println("sum="+sum);
}
}
3、對一組已經賦值的int類型的數組,找出其中的最大值和最小值
package com.sore.preparedstatement;
public class Test {
public static void main(String[] args) {
int a[]={2,3,4,5,88,}; //聲明二維數組,並賦值
int max=a[0]; //定義最大值max
int min=a[0]; //定義最小值min
for(int i=0;i<a.length;i++){
System.out.println("a[i]="+a[i]);//賦值給數組a
if(i==0){ //當循環第一次執行時,最大值max和最小值min都爲得到的第一個數
max=a[i];
min=a[i];
}else{
if(a[i]>max){ //當數組裏找到比最大值max還要大時便將值賦給max
max=a[i];
}else if(a[i]<min){ //當數組裏找到比最小值min還要小時便將值賦給min
min=a[i];
}
}
}
System.out.println("min="+min);
System.out.println("max="+max);
}
}
4、聲明一個隨機數組,獲得數組的長度、最大值、最小值
package com.sore.preparedstatement;
public class Test {
public static void main(String[] args) {
int a[]=new int[(int)(Math.random()*10)];//聲明隨機數組
int min=a[0];//最小值
int max=a[0];//最大值
for(int i=0;i<a.length;i++){
a[i]=(int)(Math.random()*10); //將隨機數組賦給a,遍歷
System.out.println("a["+i+"]="+a[i]);
if(i==0){
max=a[i];
min=a[i];
}else{
if(a[i]>max){
max=a[i];
}else if(a[i]<min){
min=a[i];
}
}
}
System.out.println("數組的長度="+a.length);//得到隨機生成的數組長度
System.out.println("min="+min);
System.out.println("max="+max);
}
}
5、輸入某年某月某日,判斷這一天是這一年的第幾天?
程序分析:以3月5日爲例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大於3時需考慮多加一天。
package com.sore.preparedstatement;
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int days[]={31,28,31,30,31,30,31,31,30,31,30,31};
System.out.println("請輸入年份:");
int year=sc.nextInt();
System.out.println("請輸入月份:");
int mouth=sc.nextInt();
System.out.println("請輸入日:");
int day=sc.nextInt();
int allday=0;//共多少天
for(int i=0;i<mouth-1;i++){
allday+=days[i];//每個月的天數累加得到全部天數
}
if((year%4==0&&year%100!=0||year%400==0)&&mouth>3){ //給出條件判斷
allday++;
}
System.out.println(allday+day);
}
}
6、利用數組保存超市庫存數據,結合下標的應用完成簡易超市小票的打印
如:
請輸入購買商品:毛巾
請輸入單價:25.0
請輸入購買數量:2
======歡迎光臨**超市===========
商品名稱 單價 數量 總價
毛巾 25.0 2 50.0
您一共消費:50.0元
public class Test {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String name[]={"毛巾","辣條"};
double price[]={10,20};
int index=-1;
int index_p=-1;
while(true){
System.out.println("請輸入您要購買的商品:");
String name_buy=sc.next();
System.out.println("請輸入您要購買的商品單價:");
double price_buy=sc.nextDouble();
System.out.println("請輸入您要購買的數量:");
int num=sc.nextInt();
for(int i=0;i<name.length;i++){
for(int j=0;j<price.length;j++){
if(name_buy.equals(name[i])&&price_buy==price[j]){
index=i;
index_p=j;
}
}
}
if(index!=-1&&index_p!=-1){
System.out.println("該商品存在");
System.out.println("======歡迎光臨**超市===========");
System.out.println("商品名稱\t單價\t 數量\t總價");
System.out.println(name_buy+"\t"+price_buy+"\t"+num+"\t"+price_buy*num);
System.out.println("您一共消費:"+price_buy*num+"元");
}else{
System.out.println("商品不存在或價格錯誤");
}
}
}
}
7、使用隨機數給一個10個元素的一維數組賦值,對10個整數排序。
*冒泡排序法
package com.jdbc.add;
public class Test {
public static void main(String[] args) {
int a[]=new int[10];//聲明一個長度爲10,int類型的一維數組
for(int i=0;i<a.length;i++){
a[i]=(int)(Math.random()*10);//得到隨機數組a[i]
}
for(int i=1;i<a.length;i++){ //對隨機生成的數組進行排序
for(int j=0;j<a.length-i;j++){
if(a[j]>a[j+1]){
int temp=a[j]; //聲明一箇中間值
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(int i=0;i<a.length;i++){ //得到隨機排序後的數組並打印
System.out.print(a[i]+" ");
}
}
}
=======================================================
package com.jdbc.add;
public class Test {
public static void main(String[] args) {
int a[]=new int[10];//聲明一個長度爲10的int類型數組
for(int i=0;i<a.length;i++){
a[i]=(int)(Math.random()*10);//得到隨機數組
}
System.out.println("隨機生成的數組:");
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
for(int i=0;i<a.length;i++){
for(int j=0;j<a.length;j++){
if(a[j]>a[i]){
int temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
}
System.out.println();
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
}
8、使用隨機數給一個10個元素的一維數組賦值,讓其倒序輸出。
package com.jdbc.add;
public class Test {
public static void main(String[] args) {
int a[]=new int[10];//聲明一個長度爲10的int類型數組
for(int i=0;i<a.length;i++){
a[i]=(int)(Math.random()*10);//得到隨機數組
}
System.out.println("隨機生成的數組:");
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
for(int i=1;i<a.length;i++){
for(int j=0;j<a.length-i;j++){
int temp=0;//中間值
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
System.out.println();
System.out.println("倒序後的數組:");
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
}
9、用程序隨機生成50個0-9之間的隨機數,將每個數字出現的次數
存入一個一維數組中,統計出現次數最多和出現次數最少的數字,及出現次數
和出現頻率。
package com.jdbc.add;
public class Test {
public static void main(String[] args) {
int[] nums=new int[50];
for(int i=0;i<nums.length;i++){//隨機生成50個數
nums[i]=(int)(Math.random()*10);//隨機數
nums[i]++;//自增
}
int maxindex=0;//存儲次數多的
int minindex=0;//存儲次數少的
for(int i=0;i<nums.length;i++){//比較大小交換位置
if(nums[maxindex]<nums[i]){
maxindex=i;
}
if(nums[minindex]>nums[i]){
minindex=i;
}
}
for(int i=0;i<nums.length;i++){
if(nums[maxindex]==nums[i]){
System.out.println("出現次數最多的爲"+i+",出現的次數爲"+nums[i]+",出現的頻率爲"+(nums[i]/50.0));
}
if(nums[minindex]==nums[i]){
System.out.println("出現次數最少的爲"+i+",出現的次數爲"+nums[i]+",出現的額頻率爲"+(nums[i]/50.0));
}
}
}
}
10、對隨機生成的數組使用sort方法進行排序 。
package com.jdbc.add;
import java.util.*;
public class Test {
public static void main(String[] args) {
int a[]=new int[10];
for(int i=0;i<a.length;i++){
a[i]=(int)(Math.random()*10);//數組得到隨機
}
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
System.out.println(); //換行
Arrays.sort(a);//使用arrays的sort方法對數進行排序
for(int i=0;i<a.length;i++){ //遍歷得到排序後的數組輸出
System.out.print(a[i]+" ");
}
}
}
11、使系統生成50個0-9之間的隨機數,將每個數字出現的次數
存入一個一維數組中,統計出現次數最多和出現次數最少的數字,及出現次數
和出現頻率 。
package com.jdbc.add;
public class Test {
public static void main(String[] args) {
int [] nums=new int[10];
for(int i=0;i<50;i++){
int num=(int)(Math.random()*10);//隨機生成0-9
nums[num]++;//生成隨機數 對應下標位置 自增
}
int maxIndex=0;//存儲出現最多次數的下標
int minIndex=0;//存儲出現最少次數的下標
//循環數組
for(int i=1;i<nums.length;i++){
//比較大小 交換位置
if(nums[maxIndex]<nums[i]){
maxIndex=i;
}
//比較大小 交換位置
if(nums[minIndex]>nums[i]){
minIndex=i;
}
}
//循序數組,比較數組中是否存在和最多最少 一致的次數
for(int i=0;i<nums.length;i++){
if(nums[maxIndex]==nums[i]){
System.out.println("最多的數是:"+i+","
+ "出現了"+nums[i]+",出現的頻率:"+(nums[i]/50.0));
}
if(nums[minIndex]==nums[i]){
System.out.println("最少的數是:"+i+","
+ "出現了"+nums[i]+",出現的頻率:"+(nums[i]/50.0));
}
}
}
}
12、利用函數實現模塊化編程的實踐
題目:仿ATM的操作
要求: 1.利用如下方法在類中指定一個變量,作爲用戶的賬戶:
public static double z = 0; 聲明在類中,和函數是平級關係
2. 分別聲明三個函數,用於表示存錢/取錢/查詢餘額 三種操作
函數的要求如下:
存:public static void savemoney(double money){}
取:public static void catchmoney(double money){}
查:public static void showmoney(){}
修改密碼:public static void changepwd(String oldpwd,String newpwd){}
3.設計用戶交互:
3.1 設計一個歡迎界面,可參考下述方式:
*****************************************
* 歡迎使用**銀行ATM自動操作櫃員機 *
**
*****************************************
3.2 設計功能選項提示,可參考下述方式:
註冊(無限次註冊)登錄(限制3次登錄)成功過後,
請選擇功能: 1.存錢 2.取錢 3.查詢餘額 4.修改密碼 4.退出
3.3 結合循環,分支,函數, 實現上述功能
package com.sore.preparedstatement;
import java.util.Arrays;
import java.util.Scanner;
/*
* 存:public void savemoney(double money){}
取:public void catchmoney(double money){}
查:public void showmoney(){}
修改密碼:public void changepwd(String oldpwd,String newpwd){}
* */
public class Test {
static double balance;
static Scanner sc=new Scanner(System.in);
public static void main(String[] args){
while(true){
System.out.println("請輸入您要操作的選項:1.存錢;2.取錢;3.查詢餘額;4.修改密碼;5.退卡");
int type=sc.nextInt();
switch(type){
case 1:
savemoney(0);
break;
case 2:
catchmoney(0);
break;
case 3:
showmoney();
break;
case 4:
break;
}
}
}
public static void savemoney(double money){
System.out.println("請輸入您要存入的money:");
double mmoney=sc.nextDouble();
if(mmoney%100==0){
balance+=mmoney;
System.out.println("存錢成功,當前餘額爲"+balance);
}else{
System.out.println("存錢失敗,請放入面額爲100的鈔票");
}
}
public static void catchmoney(double money){
System.out.println("請輸入您要取出的金額:");
double mmoney=sc.nextDouble();
if(mmoney<balance&&mmoney%100==0){
balance-=mmoney;
System.out.println("取錢成功,當前餘額爲"+balance);
}else{
System.out.println("餘額不足或金額輸入錯誤,取錢失敗");
}
}
public static void showmoney(){
System.out.println("當前餘額="+balance);
}
public static void changepwd(String oldpwd,String newpwd){
System.out.println("請輸入您");
}
}
================================================================================
package com.eduask.day01;
import java.util.Scanner;
class User{
String name;
String pwd;
double balance;
public void registLogin(){//用戶登錄註冊
for(;;){
Scanner sc=new Scanner(System.in);
System.out.println("請輸入您的註冊賬戶");
name=sc.next();
System.out.println("請輸入您的註冊密碼");
pwd=sc.next();
System.out.println("請確認您的註冊密碼");
String pwd1=sc.next();
if(pwd1.equals(pwd)){
System.out.println("註冊成功");
break;
}else{
System.out.println("兩次密碼不一致,是否重新註冊Y/N");
char input=sc.next().charAt(0);
if(input=='Y'||input=='y'){
System.out.println("重新註冊");
}else if(input=='N'||input=='n'){
System.out.println("退出註冊");
break;
}
}
}
for(int i=1;i<=3;i++){// 登錄
Scanner sc=new Scanner(System.in);
System.out.println("請輸入您的登錄賬戶名");
String name2=sc.next();
System.out.println("請輸入您的登錄密碼");
String pwd2=sc.next();
if(name2.equals(name)&&pwd2.equals(pwd)){
System.out.println("登錄成功");
break;
}else{
System.out.println("登錄失敗,您還有"+(3-i)+"次登錄機會");
}if(i==3){
System.out.println("3次已用完,請間隔三小時再進行登錄");
break;
}
}
}
public void savemoney(double money){
if(money%100==0){
balance+=money;
System.out.println("存款成功");
}else{
System.out.println("請放置不超過100張面額爲100的鈔票");
}
}
public void catchmoney(double money){
if(money>balance){
System.out.println("您的餘額不足");
}else{
balance-=money;
System.out.println("取款成功");
}
}
public void showmoney(){
System.out.println("您的餘額爲"+balance);
}
public void changepwd(String oldpwd,String newpwd){
if(oldpwd.equals(pwd)){
pwd=newpwd;
System.out.println("修改成功");
}else{
System.out.println("兩次密碼不一致,修改失敗");
}
}
}
=========================================================
public class Ch01Atm {
public static void main(String[] args) {
User user=new User();
user.registLogin();
Caozuo(user);
}
public static void Caozuo(User a){
while(true){
Scanner sc=new Scanner(System.in);
System.out.println("1.存款;2.取款;3.查詢餘額;4.修改密碼;5.退卡");
System.out.println("請輸入您的操作選項");
int input=sc.nextInt();
if(input==1){
System.out.println("請放置不超過100張面額爲100的鈔票");
double money=sc.nextDouble();
a.savemoney(money);
}else if(input==2){
System.out.println("請輸入您的取款金額");
double money=sc.nextDouble();
a.catchmoney(money);
}else if(input==3){
a.showmoney();
}else if(input==4){
System.out.println("請輸入您的原密碼");
String oldpwd=sc.next();
System.out.println("請輸入您的新密碼");
String newpwd=sc.next();
a.changepwd(oldpwd, newpwd);
}else if(input==5){
System.out.println("再見,歡迎下次光臨");
break;
}
}
}
}
**-----關於排序-----**
1.冒泡排序
package com.jdbc.add;
/**
* 冒泡排序
* */
public class Test {
public static void main(String[] args) {
int a[]=new int[10];
for(int i=0;i<a.length;i++){
a[i]=(int)(Math.random()*10);//數組得到隨機
}
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
System.out.println(); //換行
for(int i=1;i<a.length;i++){
for(int j=0;j<a.length-i;j++){
if(a[j]>a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(int i=0;i<a.length;i++){ //遍歷得到結果
System.out.print(a[i]+" ");
}
}
}
2、直接選擇排序
package com.sore.preparedstatement;
public class Test {
public static void main(String[] args) {
int a[]={2,1,4,99,7,3};//聲明數組
for(int i=1;i<a.length;i++){//執行的次數
int index=0;//存儲最大的數
for(int j=1;j<=a.length-i;j++){//元素比較
if(a[j]>a[index]){
index=j;//找到最大的數
}
}
int temp=a[a.length-i];//把第一個元素值保存到臨時變量中
a[a.length-i]=a[index];//比較,做交換,把第二個值保存到第一個元素單元中
a[index]=temp;//把臨時變量也就是第一個元素原值保存到第二個元素中
}
for(int i=0;i<a.length;i++){//遍歷輸出排序後的數組
System.out.print(a[i]+" ");
}
}
}
3、反轉排序(倒序輸出)
package com.sore.preparedstatement;
public class Test {
public static void main(String[] args) {
int a[]={1,2,3,4,5};
int len=a.length;//反轉次數
for(int i=0;i<len/2;i++){ //次數
int temp=a[i];
a[i]=a[len-1-i];
a[len-1-i]=temp;
}
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
}
4、得到一維數組int a[]={1,4,7,9,10}的下標位;
package com.sore.preparedstatement;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a[]={1,4,7,9,10};
System.out.println("請輸入您要查找的數:");
int input=sc.nextInt();
int index=-1;//記錄下標,若爲-1則是沒找到該數
for(int i=0;i<a.length;i++){
if(a[i]==input){
index=i;//將值賦給下標index
}
}
if(index!=-1){
System.out.println("找到該數,下標位"+index);
}else{
System.out.println("未找到該數");
}
}
}
4、得到一維數組int a[]={1,4,7,9,10}中數值10的下標位;
package com.sore.preparedstatement;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a[]={1,4,7,9,10};
int index=-1;
for(int i=0;i<a.length;i++){
if(a[i]==10){
index=i;
}
}
if(index!=-1){
System.out.println("該數的下標位="+index);
}else{
System.out.println("錯誤");
}
}
}
5、有數組int a[]={1,4,7,9,10,22,89,38,77,90};進行冒泡排序,並得到最小及最大值輸出,並找到數值89的下標位是多少.並得到能被2整除的數,並得到符合條件的總個數。
package com.sore.preparedstatement;
import java.util.Scanner;
//有數組int a[]={1,4,7,9,10,22,89,38,77,90};進行冒泡排序,並得到最小及最大值輸出,並找到數值89的下標位是多少.
public class Demo {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a[]={1,4,7,9,10,22,89,38,77,90};
int temp;//臨時變量,用來保存元素
for(int i=1;i<a.length;i++){//控制循環次數,交換輪數
for(int j=0;j<a.length-i;j++){ //元素交換
if(a[j]>a[j+1]){//第一個數大於第二個數時
temp=a[j];//將第一個數保存在臨時變量中
a[j]=a[j+1];//將第二個數保存在第一個變量中
a[j+1]=temp;//將開始的變量賦給第二個變量
}
}
}
int max=0;
int min=0;
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
if(i==0){
max=a[0];
min=a[0];
}else{
if(a[i]>max){
max=a[i];
}else if(a[i]<min){
min=a[i];
}
}
}
System.out.println();
System.out.println("min="+min);
System.out.println("max="+max);
int index=-1;
for(int i=0;i<a.length;i++){
if(a[i]==89){
index=i;
}
}
if(index!=-1){
System.out.println("該數的下標位="+index);
}else{
System.out.println("沒有該數咯");
}
int count=0;//能被2整除的數有多少個
for(int i=0;i<a.length;i++){
if(a[i]%2==0){
System.out.print(a[i]+" ");
count++;
}
}
System.out.println("count="+count);
}
}