Java学习笔记(四)循环控制

来源:互联网 发布:怎么查看淘宝店铺扣分 编辑:程序博客网 时间:2024/05/22 15:15

4.1 for循环

For(初始化;条件;但不动作;)
{}
1,第一个是初始化,可以定义一个变量并赋值。
2,循环维持条件,与while一样进入循环先检测是否满足。
3,步进,每轮循环必须执行的表达式。

while和for总是可以替换的

1,如果有明确的次数用for
2,必须执行一次用 do while
3,其他情况用while

tips:Int 取值范围 -2^31…… 2^31-1

几种循环的使用情况
如果有固定的次数,使用for
必须执行一次用do while
其他情况用while

4.2 循环控制

  • 素数
import java.util.Scanner;public class Sushu {    private static Scanner in;    public static void main(String[] args) {        in = new Scanner(System.in);        int n = in.nextInt();        int isprme = 1;        for(int i =2;i<n;i++ )        {            if(n%i==0)            {                isprme = 0;                break;            }                   }        if(isprme==1)        {            System.out.println(n+"是素数");        }        else        {            System.out.println(n+"不是素数");        }    }}

tips:
1,break可以用于3种循环,break的位置很重要,要注意。
2,Continue 可以跳过这轮循环,继续下一轮。
3,break和continue只能跳出它所在的那层循环
4,循环的前面可以有一行放一个 标号:
然后,break或continue 标号 可以作于与标号的那层循环

4.3 多重循环

  • 数硬币
import java.util.Scanner;public class YB {    private static int n;    public static void main(String[] args) {        // TODO Auto-generated method stub        Scanner in = new Scanner(System.in);        n = in.nextInt();        out:        for(int one = 0; one<n; one++)        {            for(int five = 0;five<n;five++)            {                for(int ten = 0;ten<n;ten++)                {                    if(one+five*5+ten*10==n)                    {                        System.out.println(one+"张一元"+five+"张五元"+ten+"张十元");                        break out;                    }                }            }            {            }        }    }}

tips:如果要让break跳出更上层的循环,最好在要跳出的循环加上标号
名字 :

4.4 逻辑类型

  • .布尔类型 boolean

    1,关系运算的结果只能是逻辑值,true或false。
    这个值可以保存在一个对应的逻辑类型的变量中,这样的变量类型是boolean
    2,布尔(boolean)是为了纪念Geprge boole对逻辑运算的贡献。


1 !A 如果ture就是false 否则想反
2 && a&&b 如果 ab都是 ture结果为ture,否则false
3,|| a||b ,如果ab有一个为ture,结果为ture,否则为false

4.5 循环计算

  • 求和 f(n)=1+1/2+1/3+……+1/n;
import java.util.Scanner;public class Fn {    public static void main(String[] args) {        // TODO Auto-generated method stub        Scanner in = new Scanner(System.in);        int n =in.nextInt();        double sum =0.0;        for(int i=1;i<=n;i++)        {            sum = sum +1.0/i;//用一个浮点数和整数做运算,会自动换算成浮点数        }        System.out.printf("%.2f",sum);      //printf("%.2f",)输出小数点后2位    }}

tips:
1,printf(“%.2f”,)输出小数点后2位
2,用一个浮点数和整数做运算,会自动换算成浮点数

  • 最大公约数
import java.util.Scanner;public class gcd {    private static Scanner in;    public static void main(String[] args) {        in = new Scanner(System.in);        int a= in.nextInt();        int b= in.nextInt();        while(b!=0)        {            int r = a%b;            a = b;            b = r;        }        System.out.println(a);    }}

作业

  • 素数和

题目内容:

我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。

现在,给定两个整数n和m,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。

输入格式:

两个整数,第一个表示n,第二个表示m。

输出格式:

一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。

输入样例:

2 4

输出样例:

5

import java.util.Scanner;public class Prime {    public static void main(String[] args) {        // TODO Auto-generated method stub        Scanner in = new Scanner(System.in);        int n,m;        n = in.nextInt();        m = in.nextInt();        int sum =0;        int[] numbers = new int[m+1];        for(int i =2;i<=m;i++)        {            for(int j = 2;i*j<=m;j++)            {                numbers[i*j] = 1;            }        }        for(;n<=m;n++)        {            if(numbers[n]==0)            {                sum = sum +n;            }        }        System.out.println(sum);    }}
  • 念整数

题目内容:

你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。

如输入1234,则输出:

yi er san si

注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为:

fu er san si yi

输入格式:

一个整数,范围是[-100000,100000]。

输出格式:

表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,末尾没有空格。

输入样例:

-30

输出样例:

fu san ling

import java.util.Scanner;public class Shusu {    private static Scanner in;    public static void main(String[] args) {        in = new Scanner(System.in);        int number = in.nextInt();        int sum = 0;        if(number<0)        {            System.out.print("负");            number = -number;        }        for(int a;number>0;)        {            a = number%10;            number = number/10;            sum = sum*10+a;             }//      System.out.println(sum);        for(int b;sum>0;)        {            b= sum%10;                      switch(b)            {            case 0 :System.out.print("零");            break;            case 1 :System.out.print("壹");            break;            case 2 :System.out.print("贰");            break;            case 3 :System.out.print("叁");            break;            case 4 :System.out.print("肆");            break;            case 5 :System.out.print("伍");            break;            case 6 :System.out.print("陆");            break;            case 7 :System.out.print("柒");            break;            case 8 :System.out.print("捌");            break;            case 9 :System.out.print("玖");            break;            }            sum = sum/10;        }}}
0 0
原创粉丝点击