1.使用break和label打印乘法表
【习题描述】
输入任意数字n,使用for循环,以及应用break打印输出1*(n-1)的乘法表
import java.util.Scanner; /* TODO:输入任意数字n,使用break打印1*(n-1)的乘法表。 如:输入:9。输出: 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 */ class Example7_13 { public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.println("请输入1-10中的任意数字"); int z= input.nextInt(); outer: /* * TODO:第一层循环1到z,乘法表的第一个乘数 */ for (int i=1;i<z;i++) { /* * TODO:第二层循环1到z,乘法表的第二个乘数 */ for (int j=1;j<=i;j++) { /* * TODO:如果第二个乘数大于第一个乘数重新进入第一个循环。 */ if (j>i) { break; } if (i == z) { break outer; } System.out.print(" " + i + "*" + j + "=" + i * j); } System.out.println(); } } }
2.编写if选择结构
【习题描述】
编写程序,创建一个变量x,用户从控制台输入一个数值,赋给变量x,然后使用if语句判断,如果x>0,输出0,否则输出1。
import java.util.Scanner; public class shuchu { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入x值:"); /* TODO:创建变量x,从控制台输入值赋予x 使用if语句判断,如果x>0,输出0,否则输出1。 */ int x=sc.nextInt(); if(x>0){ System.out.println(0); }else{ System.out.println(1); } } }
3.使用continue跳过2的整数倍
【习题描述】
输入1-10中的任意数字n,通过使用continue,输出1-10中的所有数字,但不能包含数字2的整数倍
import java.util.Scanner; /* TODO:输入1-10中的任意数字n,通过使用continue,输出1-10中的所有数字,但不能包含数字2的整数倍。 如:输入:5 输出:输出非2的整数倍数据:1 输出非2的整数倍数据:3 输出非2的整数倍数据:5 */ class Example7_15 { public static void main(String args[]) { Scanner input = new Scanner(System.in); System.out.println("请输入1-10中的任意数字"); int j = input.nextInt(); for (int i = 1; i <= j; i ++) { //TODO:判断i是偶数则用continue跳过继续执行 if(i%2==0){ continue; } System.out.println("输出非2的整数倍数据:"+i); } } }
4.求最大公约数和最小公倍数
【习题描述】
定义求两个数最大公约数和最小公倍数的方法。用户输入两个整数,调用方法,求出这两个整数的最大公约数和最小公倍数,并打印输出。
import java.util.Scanner; /* TODO:输入两个整数,求出这两个整数的最大公约数和最小公倍数。 例如:输入 40 30 输出 最大公约数:10 最小公倍数:120 */ class Example7_10 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入第一个整数:"); int n1 = input.nextInt(); System.out.println("请输入第二个整数:"); int n2 = input.nextInt(); System.out.println("最大公约数:" + get_gcd(n1, n2)); System.out.print("最小公倍数:" + get_lcm(n1, n2)); } // 最大公约数 public static int get_gcd(int n1, int n2) { int gcd = 0; if (n1 < n2) { gcd = n1; n1 = n2; n2 = gcd; //TODO:如果n1小于n2,将n1和n2 互换。方便后面知道哪个值是最大的,避免多次判断。 } if (n1 % n2 == 0) { //TODO:如果n1能被n2整除 最大公约数为n2。 gcd = n2; return gcd; } while (n1 % n2 > 0) { //TODO:设置n1等于n1除以n2的余数。 n1 = n1%n2; if (n1 < n2) { gcd = n1; n1 = n2; n2 = gcd; //TODO:再判断如果n1小于n2,将n1和n2 互换。 } if (n1 % n2 == 0) { gcd = n2; //TODO:如果n1能被n2整除 最大公约数为n2。 } } return gcd; } /* TODO:求最小公倍数 功能描述:求出输入的两个数字的最小公倍数。提示:n1和n2的乘积除以最大公约数既为最小公倍数 参数说明:需要运算的两个数 返回值说明:两个参数的最小公倍数 */ public static int get_lcm(int n1, int n2) { return (n1*n2)/get_gcd(n1, n2); } }
5.计算输入数据的和
【习题描述】
定义double型变量sum,并初始化为0。键盘输入若干个数字,每输入一个数字回车确认,最后输入0结束整个的输入操作过程。求输入的所有数字之和并打印输出。
import java.util.Scanner; public class Example2_3 { public static void main (String args[ ]){ System.out.println("请输入若干个数,每输入一个数回车确认"); System.out.println("最后输入数字0结束输入操作"); Scanner reader=new Scanner(System.in); double sum=0; /* TODO:循环判断,如果x不等于0的话,将sum的值增加x 持续输入x的值,直到输入0结束 */ while(true){ double x = reader.nextDouble(); if(x==0.0){ break; }else{ sum+=x; } } System.out.println("sum="+sum); } }
6.计算存款收益
【习题描述】
假设银行中的存款是10000元,按照11.25%的利率,一年后连本带利将变为11125元。输入任意本金,计算出第一次本金利息翻一番后的本金利息总和
import java.util.Scanner; /* 假设银行中的存款是10000元,按照11.25%的利率,一年后连本带利将变为11125元。输入任意本金,计算出第一次本金利息翻一番后的本金利息总和。 如:输入:20000,输出:42182.28807022953。 */ class Example7_5 { public static void main(String[] args) { double original,money,interest; int years=0; Scanner input=new Scanner(System.in); System.out.println("请输入任意资金数额:"); int num=input.nextInt(); original=money=num;//本金 interest=11.25/100;//年利率 //当利息和本金之和大于2倍的本金 //TODO:利用while语句,计算第一次本金利息翻一番后的本金和利息之和。将结果赋值给money并输出。注意利息是复利的计算方法。在“- -”和空白处补全代码。 double temp = money; while (money<2*original){ years++; temp = temp*(1.0+interest); money = temp; } System.out.print(money); } }
7.判断某整数是否能同时被3和7整除
【习题描述】
把程序补充完整,使得从键盘输入一个整数,能判断出该数是否是既可以被3整除又可被7整除的数。如果是,则输出”Yes“,否则输出"No"
import java.io.*; import java.util.*; public class Main { public static void main(String args[]) { Scanner cin = new Scanner(System.in); int x = cin.nextInt(); //判断x是否是既能被3整除,又能被7整除,如果是则输出“Yes",否则输出"No" if(x%3==0 && x%7==0){ System.out.println("Yes"); }else{ System.out.println("No"); } }
8.输出指定月份的季节
【习题描述】
根据输入的月份,输出对应的季节(”春天“,”夏天“,”秋天“,”冬天“),如果输入的月份不合理,输出”月份不合法!“。
import java.io.*; import java.util.*; public class Main { public static void main(String args[]) { Scanner cin = new Scanner(System.in); int month = cin.nextInt(); //输入月份 String season = "不合法的月份!"; //判断month是属于哪个季节,对应修改season为”春天“,”夏天“,”秋天“或”冬天“ switch (month){ case 12: case 1: case 2: season = "冬天"; break; case 3: case 4: case 5: season = "春天"; break; case 6: case 7: case 8: season = "夏天"; break; case 9: case 10: case 11: season = "秋天"; break; } System.out.println(season); } }
9.初始化点的坐标,然后将点坐标输出
【习题描述】
定义一个点类(Point),包含int型成员变量x、y(坐标),以及设置坐标的方法。创建两个点对象,输入两个点的坐标,将其输出,然后将一个点对象赋值给另一个对象,输出两个点位置。
import java.util.Scanner; public class Example4_4 { public static void main(String args[]) { //TODO:创建两个Point对象p1,p2 Point p1 = new Point(); Point p2 = new Point(); Scanner sc = new Scanner(System.in); System.out.println("输入点的坐标(x,y):"); //TODO:输入点的坐标,调用Point对象p1,p2的setXY方法赋值 p1.setXY(sc.nextInt(), sc.nextInt()); System.out.println("p1的x,y坐标:"+p1.x+","+p1.y); p2.setXY(sc.nextInt(), sc.nextInt()); System.out.println("p2的x,y坐标:"+p2.x+","+p2.y); p1 = p2; System.out.println("将p2的引用赋给p1后:"); System.out.println("p1的x,y坐标:"+p1.x+","+p1.y); System.out.println("p2的x,y坐标:"+p2.x+","+p2.y); } static class Point { int x,y; /* TODO:设置变量x,y的值 功能描述:把传入的参数,分别赋值给x,y变量 参数说明:传入m、n分别赋给x、y变量 返回值说明:无 */ public void setXY(int m,int n){ this.x = m; this.y = n; } } }
10.判断素数
【习题描述】
定义一个判断素数的方法isPrime。用户输入1-100以内的任意数字n,通过调用isPrime方法判断从0-n的所有素数,并打印输出。
import java.util.Scanner; /* 输入1-100以内的任意数字n,通过for循环输出从0-n中的所有素数,素数只能被1和自身整除。 如:输入:30 输出:2 3 5 7 11 13 17 19 23 29 */ class Example7_8 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入1-100中的任意数字:"); int j = sc.nextInt(); for (int i = 1; i <= j; i++) { if (isPrime(i)) { System.out.print(i+" "); } } } //素数的判断方法 private static boolean isPrime(int num) { if(num==1){ return false; } //TODO:求出该数值的2次方根,然后判断2到该值之间是否有可以被整除的数,在“- -”处补全代码 long sqrtNum=(long)Math.sqrt(num); for(int i=2;i<num;i++){ if(num%i==0){ return false; } } return true; } }