practice03-选择结构分支结构与循环结构

1、读入一个整数,表示一个人的年龄。

如果小于6岁,则输出“儿童”,6岁到13岁,输出“少儿”;14岁到17岁,输出“青少年”;18岁到35岁,输出“青年”;36岁到50岁,输出“中年”; 50岁以上输出“中老年”。

import java.util.Scanner;
public class Task01 {

	public static void main(String[] args) {
	System.out.println("请输入年龄:");
		Scanner input = new Scanner(System.in);
		int age = input.nextInt();
		isName(age);
	}
	public static void isName(int age) {
		if (age < 6) {
			System.out.println("儿童");
		}
		if (age > 6 && age < 13) {
			System.out.println("少儿");
		}
		if (age > 14 && age < 17) {
			System.out.println("青少年");
		}
		if (age > 18 && age < 35) {
			System.out.println("青年");
		}
		if (age > 36 && age < 50) {
			System.out.println("中年");
		}
		if (age > 50) {
			System.out.println("中老年");
		}
	}

2、计算销售总金额

图书批发商店的某本书的零售价是26.5元/本,如果客户一次性购买100本以上(包括100本),则每本的价格打9折,如果客户一次性购买500本以上(包括500本),则每本的价格打8折并返回1000元给客户,请分别计算购买8本、150本、600本的应付金额是多少。要求购买书的数量从控制台输入。

import java.util.Scanner;
public class Task02 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		double book = 26.5;
		System.out.println("请输入要购买几本书");
		int sum = input.nextInt();
		isSum(sum);
		double money =input.nextDouble();
	}
	public static void isSum(int sum) {
		if (sum > 0 && sum <= 100) {
			System.out.println("您购买了"+sum+"本书,应付金额为"+sum*26.5+"元");
		}
		if (sum >= 100 && sum < 500) {
			System.out.println("您购买了"+sum+"本书,应付金额为"+sum*26.5*0.9+"元");
		}
		if (sum >= 500) {
			System.out.println("您购买了"+sum+"本书,应付金额为"+sum*26.5*0.8+1000+"元");
		}
	}

}

3、读入一个表示年份的整数,判断这一年是否是闰年。如何判断一个年份 是否是闰年:

3.1 如果这个年份能够被4 整除,且不能被100 整除,则这一年是闰年。例如,1996 年是闰年,而相应的,1993 年就不是闰年。
3.2 如果这个年份能够被100 整除,则这个数必须要能被400 整除,才是闰年。例如,2000 年是闰年,1900 年不是闰年。

import java.util.Scanner;
public class Task03 {
	public static void main(String[] args) {
		System.out.println("请输入年份");
		Scanner input = new Scanner(System.in);
		int year = input.nextInt();
		if ((year % 4 == 0 && year % 100 != 0)||(year % 100 == 0 && year % 400 == 0)) {
			System.out.println("这一年是闰年");
		}else {
			System.out.println("这一年不是闰年");
		}
	}
}

4、代码如下,运行完成之后的结果是:10是偶数。横线处补全代码

public class Test{
	public static void main(String[] args){
		int a=10;
		if(____________){
		System.out.println(a+"是偶数");
		}
	}
}

10 % 2 == 0

5、以下代码运行结果?

public static void main(String[] args) {
	boolean flag = false;
	int num = 10;
	if (flag){
		num++;
	}
	num++;
	if(num < 11){
		System.out.println("天⽣我材必有⽤");
	if (num > 5){
		System.out.println("千⾦散尽还复来");
	}
}
System.out.println("饿了么?");
}

饿了么?

6、读入一个整数,如果是1~5 之间,则分别输出5个福娃的名字,否则输出“北京欢迎你”。

import java.util.Scanner;
public class Task04 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int num = input.nextInt();
		switch (num) {
		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;
		default:
			System.out.println("北京欢迎你");
			break;
		}
	}
}

7、读入一个整数或字符,代表季度,输出以下内容。

第一季度:3-5月(春季)
第二季度:6-8月(夏季)
第三季度:9-11月(秋季)
第四季度:12-2月(冬季)

import java.util.Scanner;
public class Task05 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输⼊月份:");
		int month = scanner.nextInt();
		switch (month) {
		case 3:
		case 4:
		case 5:
		System.out.println("第一季度:3-5月(春季)");
		break;
		case 6:
		case 7:
		case 8:
		System.out.println("第二季度:6-8月(夏季)");
		break;
		case 9:
		case 10:
		case 11:
		System.out.println("第三季度:9-11⽉(秋季)");
		break;
		case 12:
		case 1:
		case 2:
		System.out.println("第四季度:12-2月(冬季)");
		break;
		default:
		System.out.println("输入错误!");
		break;
		}
	}
}

8、以下代码运行结果为?简述原因?

public static void main(String[] args){
	int a = 20;
	if(a == 20){
		int b = 30;
	}
	int b = 40;
	System.out.println(b);
}

40

9、如果是男生送名牌手表,否则送lv包包

import java.util.Scanner;

public class Demo01 {

	public static void main(String[] args) {
		System.out.println("请输入:(男生/女生)");
		Scanner input = new Scanner(System.in);
		String sex = input.next();
		gift(sex);
		
	}
	public static void gift(String sex) {
		if (sex.equals("男生")) {
			System.out.println("送名牌手表");
		} else if(sex.equals("女生")){
			System.out.println("送lv包包");
		}else {
			System.out.println("请输入合法值");
			Scanner input = new Scanner(System.in);
			String isSex = input.next();
			gift(isSex);
		}
	} 

}

10、输入四个季节:如果春天,输出“春暖花开”,如果是夏天,输出“夏日炎炎”,如果是秋天,则输出"秋高气爽",如果是冬天,则输出"银装素裹"。

import java.util.Scanner;

public class Demo02 {

	public static void main(String[] args) {
		System.out.println("请输入季节:");
		Scanner input = new Scanner(System.in);
		String season = input.next();
		if (season.equals("春天")||season.equals("夏天")||season.equals("秋天")||season.equals("秋天")) {
			if(season.equals("春天")) {
				System.out.println("春暖花开");
			}
			if (season.equals("夏天")) {
				System.out.println("夏日炎炎");
			}
			if (season.equals("秋天")) {
				System.out.println("秋高气爽");
			}
			if (season.equals("冬天")) {
				System.out.println("银装素裹");
			}
		}else {
			System.out.println("请输入合理的季节!!!");
		}
	}

}

11、我想买车,买什么车决定于我在银行有多少存款

如果我的存款超过500万,我就买保时捷
否则,如果我的存款超过100万,我就买路虎
否则, 如果我的存款超过50万,我就买宝马
否则, 如果我的存款超过10万,我就买大众
否则, 如果我的存款10万以下 ,我买捷安特

import java.util.Scanner;

public class Demo03 {

	public static void main(String[] args) {
		System.out.println("存款共有:(单位:万元)");
		Scanner input = new Scanner(System.in);
		double money = input.nextDouble();
		if (money >= 500) {
			System.out.println("买保时捷");
		}
		if (money >= 100 && money < 500) {
			System.out.println("买路虎");
		}
		if (money >= 50 && money < 100) {
			System.out.println("买宝马");
		}
		if (money >= 10 && money < 50) {
			System.out.println("买大众");
		}
		if (money < 10) {
			System.out.println("买捷安特");
		}
	}

}

1、计算1+2+3+...+100 的和

public class Task06 {
	public static void main(String[] args) {
		int sum = 0;
		for (int i = 1; i <= 100; i++) {
			sum +=i;
		}
		System.out.println("1+2+3+...+100 的和是:"+sum);
	}
}

2、计算1+3+5+...+99 的和

public class Task07 {
	public static void main(String[] args) {
		int sum = 0;
		for (int i = 1; i < 100; i++) {
			if (i % 2 != 0) {
				sum +=i;
			}
		}
		System.out.println("1+3+5+...+99 的和是:"+sum);
	}
}

3、把1、2 两题用while 循环或do...while 循环改写。

public class Task08 {
	public static void main(String[] args) {
		int i = 1,j = 1,m = 1,n = 1;
		int sum1 = 0,sum2 = 0,sum3 = 0,sum4 = 0;

		while (i <= 99) {
			sum1 += i;
			i += 2;
		}
		System.out.println("1+3+5+...+99 的和用while计算:"+sum1);

		do {
			sum2 += j;
			j += 2;
		} while (j <= 99);
		System.out.println("1+3+5+...+99 的和用do while计算:"+sum2);

		while (m <= 100) {
			sum3 += m;
			m++;
		}
		System.out.println("1+3+5+...+100 的和用while计算:"+sum3);

		do {
			sum4 += n;
			n++;
		} while (n <= 100);
		System.out.println("1+3+5+...+100 的和用do while计算:"+sum4);
	}	
}

4、读入一个小于10的整数n,输出它的阶乘n。

import java.util.Scanner;
public class Task09 {
	public static void main(String[] args) {
		System.out.println("请输入一个小于10的整数:");
		Scanner input = new Scanner(System.in);
		int num = input.nextInt();
		int n = 1;
		for (int i = 1; i <= num; i++) {
			n *= i;
		}
		System.out.println(num+"的阶乘是:"+n);
	}
}

5、求100 以内所有能被3 整除但不能被5 整除的数字的和。

public class Task10 {
	public static void main(String[] args) {
		int sum = 0;
		for (int i = 3; i <= 100; i+=3) {
			if (i % 5 != 0) {
				System.out.println("100 以内所有能被3 整除但不能被5 整除的数字为"+i);
				sum += i;
			}
		}
		System.out.println("他们的和是:"+sum);
	}
}

6、编程找出四位整数abcd 中满足 (ab+cd)(ab+cd)=abcd 的数。

public class Task11 {
	public static void main(String[] args) {
		for (int i = 1000; i <=9999; i++) {
			int f_2 = i / 100;
			int l_2 = i % 100;
			int num = 0; 
			if ( (f_2+l_2)*(f_2+l_2) == i) {
				System.out.println(i);
			}
		}		
	}
}

7、输出99 乘法表。

public class Task12 {
	public static void main(String[] args) {
		for (int i = 1; i <= 9; i++) {
			for (int j = 1; j <=i; j++) {
          	 //列*行
				System.out.print(j+"*"+i+"="+(i*j)+"\t");
			}
			System.out.println();
		}	
	}
}

8、计算2000年1月1日到2008年1月1日相距多少天。(注意闰年)

public class Task13 {
	public static void main(String[] args) {
		int count = 0,sum = 0;
		for (int i = 2000; i < 2008; i++) {
			if ((i % 4 == 0 && i % 100 != 0)||(i % 100 == 0 && i % 400 == 0)) {
				count++;
			}
			sum = count*366+(8-count)*365;
		}
		System.out.println("2000年1月1日到2008年1月1日相距"+sum+"天");
	}
}

9、读入一个整数n,输出如下图形

n = 3
*
***
*****
n = 4
   *
  ***
 *****
*******
思路:
9.1 读入的整数n,就是外层循环的循环次数。
9.2 对于每一行,要做的事情:
9.2.1 输出若干个空格;
9.2.2 输出若干个星;
9.2.3 换行。
提示:输出不换行,⽤System.out.print()。
import java.util.Scanner;
public class Task14 {
	public static void main(String[] args) {
		System.out.println("请输入n的值:(3 or 4)");
		Scanner input = new Scanner(System.in);
		int n = input.nextInt();
		if (n == 3 || n == 4) {
			if (n == 3) {
				for (int i = 1; i <= 3; i++) {
					for (int j = 1; j <= 2 * i - 1; j++) {
						System.out.print("*");
					}
					System.out.println();
				}
			} else {
				for (int i = 1; i <= n; i++) {
					for (int j = 1; j <= n - i; j++) {
						System.out.print(" ");
					}
					for (int j = 1; j <= 2 * i - 1; j++) {
						System.out.print("*");
					}
					System.out.println();
				}
			}
		} else {
			System.out.println("请在3和4之间选择!!!");
		}
	}
}

10、求水仙花数。

提示:所谓水仙花数,是指一个三位数abc,如果满⾜a³+b³+c³=abc,则abc是水仙花数。

import java.util.Scanner;
public class Task15 {
	public static void main(String[] args) {
		/*
		System.out.println("请输入一个三位数");
		Scanner input = new Scanner(System.in);
		int num = input.nextInt();
		int ge = num % 10;
		int shi = num / 10 % 10;
		int bai = num / 100;
		if (num > 0 && num <= 999) {
			if (Math.pow(ge, 3) + Math.pow(shi, 3) + Math.pow(bai, 3) == num) {
				System.out.println("这个三位数是水仙花数");
			}else {
				System.out.println("这个三位数不是水仙花数");
			}
		} else {
			System.out.println("请输入合理的数值!!!");
		}
		*/
		for (int num = 100; num <= 999; num++) {
			int ge = num % 10;
			int shi = num / 10 % 10;
			int bai = num / 100;
			if (Math.pow(ge, 3) + Math.pow(shi, 3) + Math.pow(bai, 3) == num) {
				System.out.println(num);
			}
		}
	}
}
posted @ 2021-07-25 16:09  CN_Darren  阅读(187)  评论(0)    收藏  举报