Java学习之旅四,五

java学习之旅四

java控制语句

条件控制语句

4.1 if-else语句

方法同C语言
例题:小明考了78分,60分以上及格,80分以上为良好,90分以上为优秀,60分以下要重考,编写一段程序,输出小明的情况吧。

public class ScoreJudge {
    public static void main(String[] args){
        int score = 78;
        if(score >= 60){
            if(score >= 80){
                if(score >= 90){
                    System.out.println("成绩优秀");
                }
                else{
                    System.out.println("成绩良好");
                }
            }
            else{
                System.out.println("成绩及格");
            }
        }
        else{
            System.out.println("需要补考");
        }
    }
}

注:所有的条件语句都是利用条件表达式的真或假来决定执行路径,Java里不允许将一个数字作为布尔值使用,虽然这在C和C++是允许的,如果要在布尔测试里使用一个非布尔值,需要先用一个条件表达式将其转换成布尔值,其他控制语句同理。

4.2 switch语句

方法同C语言

public class Draw {
    public static void main(String[] args){
        int num = 2;
        switch(num){
        case 1:
            System.out.println("恭喜你,获得了一等奖");
            break;
        case 2:
            System.out.println("恭喜你,获得了二等奖");
            break;
        case 3:
            System.out.println("恭喜你,获得了三等奖");
            break;
        default:
            System.out.println("很遗憾,下次再来");        
        }
    }
}

运行结果:
在这里插入图片描述

循环控制语句

4.3while语句与do-while语句

方法同C语言
例题:分别用 while 和 do-while 两种方法,编写一个程序,实现 1-1000 中所有偶数的和,并输出。验证一下两种方法你输出的结果是一致吗?

public class SumOfEven {
    public static void main(String[] args){
        int i1 = 1, i2 = 1;
        int sum1 = 0, sum2 = 0;

        while (i1 <= 1000){     //循环1000次  
            if(0 == i1 % 2){   //判断是否为偶数
                sum1 += i1;    //将偶数加入到总数里
            }
            i1++;              //i自增1
        }
        System.out.println("用while,1到1000中,所有偶数的和为:"+sum1);

        do {
            if (0 == i2 % 2){   //在条件语句中,将数值写在前面是为了防止将==写成了=    
                sum2 += i2;   
            }
            i2++;                 
        } while(i2 <= 1000);    
        System.out.println("用do-while,1到1000中,所有偶数的和为:"+sum2);
    }
}

运行结果:
在这里插入图片描述

4.4 for语句

方法同C语言
代码一:
4.3代码用for语句实现

public class SumOfOdd {
    public static void main(String[] args){
        int sum = 0;
        for(int i = 1; i <= 1000; i++){
            if(0 == i % 2){
                sum += i;
            }
        }
        System.out.println("用for,1到1000中,所有偶数和为:"+sum);
    }
}

代码二:
计算100以内不能被3整除的数之和:

  int sum = 0; // 保存不能被3整除的数之和
    // 循环变量 i 初始值为 1 ,每执行一次对变量加 1,只要小于等于 100 就重复执行循环
    for (int i = 1;i<=100;i++) {
    // 变量 i 与 3 进行求模(取余),如果不等于 0 ,则表示不能被 3 整除
        if (i % 3 != 0) { 
            sum = sum + i; // 累加求和
        }
    }
    System.out.println("1到100之间不能被3整除的数之和为:" + sum);

代码三:嵌套循环
打印
1
12
123
1234
12345

public class PrintNum {
    public static void main(String[] args){
         // 外层循环控制行数
        for (int i = 1; i<=5; i++) {

            // 内层循环控制每行的数
            // 内层循环变量的最大值和外层循环变量的值相等
            for (int j = 1; j<=i; j++) {

                System.out.print(j);
            }

            // 每打印完一行后进行换行
            System.out.println();
        }
    }
}

跳转语句(break)

break的意思为跳出,经常用在条件和循环语句中,用来跳出循环语句的。

for(int i = 1; i <= 10; i++){
        System.out.println("循环第"+i+"次");
    if(0 == i % 3){
        break;
    }
    if(0 == i % 5){
        System.out.println("我进来了!");
    }
}

continue作用是跳过循环体中剩余的语句执行下一次循环。
例题:打印10以内的所有奇数:

for(int i = 1; i <= 10; i++){
    if(0 == i % 2) //判断i是否为偶数
        continue;  //通过continue结束本次循环
    System.out.println(i);
}

补充

在循环语句中,Java SE5 引入了一种新的更加简洁的for语法用于数组和容器,即foreach语法
例题:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数的数被称为素数,请编程判断4549、8461、641、313是否为素数

代码如下:

public class JudgePrime {
    public static void main(String[] args){
        int a = 4549;
        boolean result = true;      
        for (int i=2; i*i <= a; i++) { 
            if (a % i == 0) {  //a依次除以从2到a开方后的数(a能整除5,就一定能整除(a/5))
                result = false;
                break;
            }
        }
        if (result) {
            System.out.println(a+"是素数");
        }
        else
          System.out.println(a+"不是素数");
    }
}

java学习之旅五

java数组

5.1数组的定义和初始化

数组就是相同数据类型的元素按一定顺序排列的集合。我们可以把它看成一个大的盒子,里面按顺序存放了多个数据类型相同的数据。
在这里插入图片描述
【1】要使用数组,首先我们得对数组进行声明。
语法:数据类型[ ] 数组名; //或者: 数据类型 数组名[ ];
例如:

int ages[];      //存放年龄的数组,类型为整型
char symbol[];   //存放符号的数组,类型为字符型
String [] name;  //存放名称的数组,类型为字符串型

【2】当我们声明了数组后,需要为数组分配空间,也就是定义多大的数组。
语法:数组名 = new 数据类型 [ 数组长度 ];
数组长度就是数组最多可存放元素的个数。我们也可以在数组声明的时候初始化数组,或者在声明时就为它分配好空间,这样我们就可以不用再为数组分配空间
语法:

int [] ages = {12,18,9,33,45,60}; //声明并初始化了一个整型数组,它有6个元素
char [] symbol = new char[10] //声明并分配了一个长度为10的char型数组

【3】Java中可以将一个数组赋值给另一个数组
例如:

int [] a1 = {1,2,3};
int [] a2;
a2 = a1;

运行如下代码,观察实验结果

public class Test {
    public static void main(String[] args) {
        int [] a1 = {1,2,3};
        int [] a2;
        a2 = a1;
        for(int i = 0; i < a2.length; i++){
            a2[i]++;
        }
        for(int i = 0; i < a1.length; i++){
            System.out.println(a1[i]);
        }
    }
}

5.2一维数组

注意:
【1】数组下标从 0 开始。所以数组的下标范围是0 至 数组长度-1。
【2】数组不能越界访问,否则会报错。
for 语句在数组内可以使用特殊简化版本,在遍历数组、集合时,foreach 更简单便捷。从英文字面意思理解 foreach 也就是“ for 每一个”的意思。
运行如下代码,观察实验结果

public class JudgePrime {
    public static void main(String[] args){
        int [] ages = {12, 18, 9, 33, 45, 60};
        int i = 1;
        for(int age:ages){
            System.out.println("数组中第"+i+"个元素是"+age);
            i++;
        }
    }
}

5.3二维数组

方法同C语言

运行如下代码,观察实验结果

 String [][] name = {{"ZhaoYi", "QianEr", "SunSan"},
                {"LiSi", "ZhouWu", "WuLiu"}};
        for(int i = 0; i < 2; i++){
            for (int j = 0; j < 3; j++){
                System.out.println(name[i][j] );
            }
        }

运行结果:
在这里插入图片描述

例题

在控制台上每10个数为一组,打印出前100的数,即1~100。(提示:可以用System.out.printf("%3d",整数)。 如:
在这里插入图片描述
参考代码

public class PrintNum {
    public static void main(String[] args){
    int num[][] = new int[10][10];
    int count = 0;
    for(int i = 0; i < 10; i++){
        for(int j = 0; j < 10; j++){
            num[i][j] = ++count;
            System.out.printf("%3d ",num[i][j]);
        }
        System.out.println();
    }
}
}

http://www.runoob.com/java/java-array.html

猜你喜欢

转载自blog.csdn.net/wyh135792/article/details/84640612