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;
}
}