1. 判断1-100之间有多少个素数并输出所有素数。(将判断一个数是否是素数的功能提取成方法,在循环中直接调用即可)
解决思路
1 质数是什么怎么判断
质数只能除以他自己和1,所以只需要从二开始取余,如果取余一直没有余数则说明该数不为质数
2如何实现
01使用一个两个FOR循环来走
外层循环表示被取余的数字,即需要判断数
里层循环表示从2开始取余,判断是否有余数
02
为什么不把两个IF一起放在内层FOR判断
因为可能会出现数字前面取余没有余数但是后面有余数或者反过来
如8/3 》 取余为2
但是8/4 》 取余为0
所以需要让内层循环绕完一整圈在判断数字到底是否为质数
所以引入 COUNT来判断
如果循环结束 COUNT为0 则说明该数字为质数并输出
要写在内层循环之外,判断完一个数字之后再去判断下一个数字
public class Test2 {
public static void main(String[] args) {
int count=0;
int sum=0;
for(int i=2;i<=100;i++) {
for (int j = 2; j < i; j++) {
if (i % j == 0) {
// System.out.println(i+"不为质数");
count++;//计数器·
}
}
if(count==0){
System.out.println(i+"为质数");
sum++;
}
count=0;
}
System.out.println(sum);
}
}
输出如下:
2为质数
3为质数
5为质数
7为质数
11为质数
13为质数
17为质数
19为质数
23为质数
29为质数
31为质数
37为质数
41为质数
43为质数
47为质数
53为质数
59为质数
61为质数
67为质数
71为质数
73为质数
79为质数
83为质数
89为质数
97为质数
25
====================================================================================================================================================================================================================================
2.编写一个ATM取款机小程序,如下:
package While;
import java.util.Scanner;
public class Test6 {
public static void main(String[] args) {
int Yu_e;
System.out.println("欢迎使用ATM");
System.out.println("输入取款金额:");
Scanner input = new Scanner(System.in);
int Qukuan = input.nextInt();
Yu_e = 1000 - Qukuan;
while (true) {
System.out.println("目前余额:" + Yu_e + "是否继续(1:结束 2:继续)");
int select = input.nextInt();
if (select == 2)
{
System.out.println("输入取款金额:");
int Qukuan_S = input.nextInt();
int Yu_es = Yu_e - Qukuan_S;
if (Yu_es < 0)
{
System.out.println("目前余额不足");
}
else
{
Yu_e=Yu_es;
}
}
else
{
break;
}
}System.out.println("退出系统");
}
}
写起来不难就是容易出错
=========================================================
要点:
1 在一个循环中如果出现需要全部遍历来判断是否正确的结果 则可能需要使用到一个计数器来辅助判断,并且要在外循环里面判断完count之后再次置0
时期再次进入内循环时任然是0开始
2 在不确定循环次数的情况下
需要使用WHILE而不是FOR
使用FOR需要在可以确定循环次数的情况
使用场景不同