java%4d,java4:选择语句(selection),逻辑运算,循环(loop)

直接用例子来practice

example one:  practice first-grader  subtraction

Suppose you want to develop a program for a first-grader to practice subtraction. The program

randomly generates two single-digit integers, number1 and number2, with number1 > =

number2 and displays to the student a question such as “What is ” After the student

enters the answer, the program displays a message indicating whether it is correct.

9 - 2?

初级减法运算,利用随机工具产生两个随机数字,num1 ,num2 ,num1>=num2 然后显示 num1-num2=? 让用户输入一个答案,显示是否答对

import java.util.Scanner;

public class Subtraction{

public static void main(String[] args){

int num1=(int)(Math.random()*10);

int num2=(int)(Math.random()*10);

if(num2>num1){

int temp=num1;

num1=num2;

num2=temp;

}

Scanner input=new Scanner(System.in);

System.out.println(num1+" - "+num2+" = ?");

System.out.print("input your answer:");

int in=input.nextInt();

if(in == num1-num2)

{

System.out.println("your are right,"+num1+"-"+num2+"="+in);

}

else

System.out.println("you are wrong,"+num1+"-"+num2+"="+(num1-num2));

}

}

3121ba5a0e1a30a29838f0ad940cedfe.png

这里注意两个点:1)因为利用Math.random产生了[0,1)之间的一个double数字,所以我们需要使用显式类型转换, 2)注意输入的要求num1>num2 但我们不能决定随机函数先产生大的再产生小的,所以产生后别忘了加一个简单的判断交换。

example two:Lottery

Suppose you want to develop a program to play lottery. The program randomly generates a

lottery of a two-digit number, prompts the user to enter a two-digit number, and determines

whether the user wins according to the following rule:

1. If the user input matches the lottery in exact order, the award is $10,000.

2. If all the digits in the user input match all the digits in the lottery, the award is $3,000.

3. If one digit in the user input matches a digit in the lottery, the award is $1,000

import java.util.Scanner;

public class Lottery{

public static void main(String[] args){

int lot=(int)(Math.random()*100);

Scanner input =new Scanner(System.in);

int gue;

do{

System.out.print("input your guess:");

gue=input.nextInt();

}while(gue<10 || gue>100);

if(lot==gue)

{

System.out.println("you match all,you win $10,000");

System.exit(0);

}

int lot1=lot/10;

int lot2=lot%10;

int gue1=gue/10;

int gue2=gue%10;

if(lot1==gue2 && lot2==gue1)

{

System.out.println("you match the digital but sorry for the order,you win $3,000,the lot is" + lot);

//System.exit(0);

}

else if(lot1==gue1 || lot1==gue1 || lot2==gue1 || lot2 == gue2)

{

System.out.println("you match one digital,you win $1000,the lot is "+lot);

//System.exit(0);

}

else

System.out.println("sorry for that you lose, the lottery is "+lot);

}

}运行结果:

5527ee8fc6fbfff6655bf87d7562f4e6.png

其中有点奇怪,就是怎么产生的随机数会有个2的呢?? 我明明ramdon后是乘以100了,那么除了可能产生0(这里其实应该特殊处理才严谨点,下回改进),不应该会有产生2呀??

example three: 矩阵形式打印九九乘法表

public class MultiTable

{

public static void main(String [] args)

{

int i,j;

System.out.print(" ");

for(i=1;i<10;i++)

{

System.out.printf("%4d",i);

}

System.out.println();

System.out.println("----------------------------------------------------------");

for(i=1;i<10;i++)

{

System.out.printf("%d | ",i);

for(j=1;j<10;j++)

{

System.out.printf("%4d",i*j);

}

System.out.println();

}

}

}

42c71202a9d4d588a4e4b00d7d1a8601.png

example four: display primenumber

The problem is to display the first 50 prime numbers in five lines, each of which contains

n numbers. The problem can be broken into the following tasks:

■ Determine whether a given number is prime.

■ For number 2, 3, 4, 5, 6, test whether it is prime.

■ Count the prime numbers.

■ Print each prime number, and print ten numbers per line.

public class primeNumber

{

public static void main(String [] args)

{

int num=1;

int count=0;

System.out.printf("%4d",2);

count++;

while(count<50)

{

num+=2;

if(ifPrime(num))

{System.out.printf("%4d",num);

count++;

if(count%10==0) System.out.println();

}

}

}

public static boolean ifPrime(int n)

{

if(n%2==0) return false;

int h=(int)java.lang.Math.sqrt(n);

for(int i=3;i<=h;i+=2)

{

if(n%i==0) return false;

}

return true;

}

}

d820a010ae407d3fa931c5e1f4f77d8f.png

这里注意里边多了一个public static boolean ifPrime 用来判断是给定的一个数是否是素数,这里是定义一个类方法,这到后面会见到,这里先知道有这个用法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值