java循环结构sum关于质数,java学习04

一:循环结构:

while

while格式

/* while格式

* while(添加表达式){

* 条件表达式成立时执行的代码块

* }

* 格式与if完全相同

* */

while执行过程

int a=1;

if(a<5) {

System.out.println("if a="+a);

}

//if :条件表达式成立 执行代码块一次

a=1;

while(a<5) {

System.out.println("while a="+a);

Thread.sleep(200);

a++;//完全等价于 a=a+1;

}

//while :1 判断条件表达式是是否成立 不成立结束while

// : 2 条件表达式成立 执行代码块一次

// : 3 继续 1 2 直到条件表达式不成立

while组成

/*while的组成:

* 1 a<5:条件表达式

* 2 System.out.println("while a="+a); 循环执行的代码::循环体

* 3 a++;迭代语句

*选择执行或者不执行 用if-elase

*需要一个数从值1有规律的跑到值2时 用while

* */

while练习

求1到100的和

//求1+2+3+...100;

//System.out.println(1+2+3+4+5...+100);

//0+1=1 1+2=3 3+3=6 6+4=10 10+5=15

int sum=0;//记录结果 赋初始值为0

//循环的把一个数n加入sum中 n的值需要从1开始 每次+1

int n=1;//定义一个变量记录每次加入sum的数 从1开始

while(n<=100) {//循环的条件

sum+=n;//循环执行的代码

n++;//每次n的值需要+1

}

//循环完后 打印最终的结果

System.out.println("1+2+3+...100="+sum);

System.out.println("n="+n);//101

//迭代语句:按指定的算符重复的更改某个变量的值

求1到100内所有可以被3整除的数的平均值

//2 求1到100内所有可以被3整除的数的平均值

int sum=0,geShu=0;//定义变量记录和 个数

//定义变量n 从1开始跑

int n=1;

//使用循环让其从1跑到100

while(n<=100) {

//判断是否可以被3整除

sum+=(n%3==0?n:0);

geShu+=(n%3==0?1:0);

n++;

}

//获取平均值:

System.out.println("1到100内所有可以被3整除的数的平均值="+(double)sum/geShu);

获取所有的水仙花数

//1 获取所有的水仙花数

// 三位数 各个位数的值的三次方之和等于此数

//使用循环 把所有的三位数跑完

int n=100;

while(n<1000) {

//判断当前n是不是水仙花数

//获取当前n各个位数的值

int a=n/1%10,b=n/10%10,c=n/100%10;

//获取更改位数值的三次方之和

int sum=a*a*a+b*b*b+c*c*c;

//判断sum是不是等于当前n

if(sum==n) {

System.out.println(n+"是水仙花数!");

}

n++;//迭代语句

}

获取1到10000内的所有完数

//判断一个数是不是完数

//n的所有因子之和等于n 那n就是完数

//因子:如果n%m==0&&m!=n m就是n的因子 ,约数

//如:12 1+2+3+4+6=16 不是完数

// 6 1+2+3=6 是完数

//n的因子取值范围:[1,n/2]

//使用循环让变量m从1跑到n/2 循环判断m是不是n的因子 是 就加入sum中

int n=1;//定义变量记录要判断的数据

while(n<=10000) {

int sum=0;//定义变量记录和

//定义变量m 让其从1跑到n/2

int m=1;

while(m<=n/2) {

if(n%m==0) {

sum+=m;

}

m++;

}

//所有的m跑完 通过判断sum是不是n 来判断n是不是完数

if(n==sum) {

System.out.println(n+"是完数!");

}

n++;

}

判断一个数是不是质数:

//判断一个数是不是质数:

//质数:只能被1和其本身整除的数 1不是质数

//n :可以整除n的数的取值范围是:[2,n/2]

//使用循环让变量m从2开始 一直跑到n/2 循环判断m是否可以整除n

//只要有一次整除 n就不是质数

int n=1;//定义变量记录要判断的数据

//使用循环让变量m从2跑到n/2

int m=2;

boolean b=true;//定义一个变量 作为标签

while(m<=n/2) {

//循环判断m是否可以整除n

if(n%m==0) {

//被除尽 就更改标签的值

b=false;

}

m++;

}

//循环完后 通过判断标签的值是不是更改 来判断m是否除尽过n 进而判断n是不是质数

if(n!=1&&b==true) {

System.out.println(n+"是质数!");

}else {

System.out.println(n+"不是质数!");

}

do-while

/*do-while

*do{

* 循环体(循环执行的代码块)

*}while(条件表达式);

*

* while(条件表达式){

* 循环体(循环执行的代码块)

* }

*

* 区别: dowhile 是先执行 后判断 ;至少执行一次

* while 先判断后执行 ;可能一次也不执行

* */

int a;

a=10;

while(a<5) {

System.out.println("while a="+a);

a++;

}

a=10;

do {

System.out.println("do ----while a="+a);

a++;

}while(a<5);

for

//for和while完全等价:格式不同

/*for(初始化语句;条件表达式;迭代语句){

* 循环体(条件表达式成立时执行的代码块)

*}

*初始化语句:用于定义变量、给变量赋初始值的语句

*

*while(条件表达式){

* 循环体(条件表达式成立时执行的代码块)

* 迭代语句

*}

* */

for和while的比较

//求1到100内的和

{

int sum=0;

int n=1;

while(n<=100) {

sum=sum+n;

n++;

}

System.out.println("1到100内的和====="+sum);

}

{

int sum=0;

for(int n=1;n<=100;n++) {

sum+=n;

}

System.out.println("1到100内的和="+sum);

}

//上面的while和for 过程、代码、结果 完全相同 只是代码的位置不同

特殊情况

//for特殊情况: 初始化语句 条件表达式 迭代语句 都可以省略

// 条件表达式省略:默认是true

for (;;) {

System.out.println("----循环体---");

}

for相关变量的作用域

//一个变量的作用域取决于定义此变量的括号

//for循环中相关变量的作用域

{

int a=1;//变量a:在main方法的大括号内定义的 作用域为整个main方法

for (int b = 1; b<5; ) {//变量b:在for循环的初始化语句中定义的 作用域为整个for循环

int c=1;//变量c:在for循环的循环体中定义的 作用域为本次for循环

System.out.println("a="+a+",b="+b+",c="+c);

a++;b++;c++;

}

System.out.println("a="+a);

}

求1到100内所有的质数

//获取1到100内所有的质数

{

//定义一个变量让其从1跑到100

for (int n = 1; n <=100; n++) {

//判断当前n是不是质数

boolean b=true;//定义一个变量 作为标签

//使用循环让一个变量m从2跑到n/2

for (int m =2; m <=n/2; m++) {

//循环判断m是否除尽n

if(n%m==0) {

b=false;//如果n被m除尽 就更改标签的值

}

}

//循环完后 通过判断标签的值是否更改 来判断n是否被m除尽过 进而判断n是不是质数

if(n!=1 && b==true) {

System.out.println("n==="+n+",是质数!!");

}

}

}

99乘法表

System.out.println("123298766"+'\t');//\t制表符 给对应数据显示8n个字符的位置

System.out.println("123\n123");//\n换行符号

for (int i =1; i <=5; i++) {//外层for循环变量i的取值范围决定行数

for (int j = 1; j <= i; j++) {//内层for循环变量j的取值范围决定本行的列数

System.out.print(i+"::"+j+"\t");

}

System.out.println();

}

二:break-continue

public class Demo06BreakContinue {

public static void main(String[] args) {

/*跳转:

* break+continue

* break使用场景1:switch 结束switch结构

* 使用场景2:用在循环中 结束本层循环

* continue使用场景1:用在循环中 结束本次for循环 继续++ 进行下次循环

*

* */

for (int a =1; a < 10; a++) {

System.out.println("a="+a);

if(a==4) {break;}

}

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

for (int a = 1; a <5; a++) {

for (int b = 1; b < 5; b++) {

System.out.println("a="+a+":::b="+b);

if(b==3) {

break;//结束本次for循环

}

}

}

System.out.println("----如果结束两层for循环 方式1");

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

boolean b=true;

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

if(i==3&&j==3) {

b=false;

break;

}

System.out.println("i="+i+"---j="+j);

}

if(b==false) {

break;

}

}

System.out.println("----如果结束两层for循环 方式2");

a:for (int i =1; i < 10; i++) {

boolean b=true;

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

if(i==3&&j==3) {

b=false;

break a;

}

System.out.println("i="+i+"-------j="+j);

}

}

System.out.println("---------测试continue----");

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

if(i==3) {

continue;//结束本次for循环 继续++ 进行下次循环

}

System.out.println("continue i="+i);

}

System.out.println("---获取1到100内所有不能被3或者7整除数的和");

int sum=0;

for (int n =1; n <=100; n++) {

if(n%3==0||n%7==0) {

continue;

}

sum+=n;

}

System.out.println("----判断一个数是不是质数");

int n=1;

int m=2;

for (; m

if(n%m==0) {

break;

}

}

//如果结束循环是通过不满足m

//如果结束循环是通过break 此时m

if(n==m) {

System.out.println(n+"是质数!");

}else {

System.out.println(n+"不是质数!");

}

}

}

标签:java,04,int,sum,System,学习,while,println,out

来源: https://blog.csdn.net/qq_45893905/article/details/112481083

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值