Java流程控制及数组实验

一、实验目的

1.理解Java程序语法结构

2.掌握顺序结构、选择结构和循环结构语法的程序设计方法

3.熟悉数组等的定义和使用。

二、实验要求

1. 编写使用不同选择结构的程序

2. 编写使用不同循环结构的程序

三、实验步骤及结果

(一)使用选择语句

1.使用if...else 语句

(1)程序功能:使用if...else 语句构造多分支,判断某一年是否为闰年。键盘输入年份。闰年的条件是符合下面二者之一:能被4 整除,但不能被100 整除;能被100 整除,又能被400 整除。

(2)编写源程序文件,代码如下。

import java.util.Scanner;

public class Leap {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入年份:");
        int year=sc.nextInt();
        if((year%4==0&&year%100!=0)||year%400==0){
            System.out.println("该年为闰年");
        }
        else
        {
            System.out.println("该年不是闰年");
        }
    }
}

(3)编译运行程序,其结果如图所示。

2.使用switch 语句

(1)程序功能:在不同温度t时显示不同的解释说明。键盘输入温度(-5℃~40℃)。

t<10℃: 有点冷。要多穿衣服;

10℃<= t <25℃:正合适。出去玩吧。

25℃<= t <35℃:有点热。

t >=35℃:太热了!开空调。

(2)程序源代码如下。

import java.util.Scanner;

class Temp{
    public static void main(String args[]) {
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入温度:");
        int c=sc.nextInt();
        switch (c<10?1:c<25?2:c<35?3:4) {
            case 1:
                System.out.println(" "+c+"℃ 有点冷。要多穿衣服。");
            case 2:
                System.out.println(" "+c+"℃ 正合适。出去玩吧。");
            case 3:
                System.out.println(" "+c+"℃ 有点热。");
            default:
                System.out.println(" "+c+"℃ 太热了!开空调。");
        }
    }
}

(3)编译运行程序,其结果如图所示。

 

(4)增加 break; 语句,重新编译运行,对比下效果,思考原因。

import java.util.Scanner;
public class Test {
    public static void main(String[] args) throws Exception {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入温度:");
        int c = sc.nextInt();
        switch (c<10?1:c<25?2:c<35?3:4){
            case 1:
                System.out.println(""+c+"℃ 有点冷。要多穿衣服!");
                break;
            case 2:
                System.out.println(""+c+"℃ 正合适。出去玩吧!");
                break;
            case 3:
                System.out.println(""+c+"℃ 有点热!");
                break;
            default:
                System.out.println(""+c+"℃ 太热了!开空调!");
                break;
        }
    }
}

  

(二)使用循环语句

1. for 循环语句练习

(1) 程序功能:将1至100之间所有的整数求和。

(2) 程序源代码如下。

public class Sum {
    public static void main(String[] args) {
       int sum = 0;
        for (int i = 1; i < 101; i++) {
            sum += i;
        }
        System.out.println("将1至100之间所有的整数求和:" + sum);
    }
}

(3)编译运行程序,其结果如图所示。

 

2. while 循环语句练习

 

(2)程序源代码如下。

public class FindMinimalK {
    public static void main(String []args){
        int sum=0,k=1;
        while (sum<=2000){
            k++;
            sum+=k;
        }
        System.out.println("the minimal k="+k);
    }
}

(3)编译运行程序,其结果如图所示。

 

3.do…while 循环语句练习

(1) 程序功能:求8+88+888+…前10项之和,并将求和表达式与所求的和显示出来。

(2) 程序源代码如下。

public class Sum2 {
    public static void main(String args[]) {
        int sum=0;
        int k=0;
        int i=1;
        do{
            sum+=k;
            k=k*10+8;
            i++;
        }
        while (i<=10);
        System.out.println("8+88+888+…前10项之和为:"+sum);
    }
}

(3)编译并运行程序,结果如图所示。

 

(三)数组

(1)程序功能:定义一个int型的一维数组,数组的长度由键盘输入,为数组中的元素随机赋值。依次完成如下功能:

(a) 输出数组中的元素。每行输出最多5个数字,数字之间用空格键分隔;

(b) 计算数组中元素之和,并输出;

(c) 求出数组中元素的最大值及其位置(若有多个相同的最大值,仅输出第一个),并输出。

(2) 程序源代码如下。

import java.util.Random;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("数组的长度:");
        int size=sc.nextInt();
        int a[]=new int[size];
        int sum=0,max=0,loc=0;
        Random random=new Random();
        for(int i=0;i<size;i++){
            a[i]=random.nextInt(100);
            if(i%5==0)
                System.out.println();
            System.out.printf("%-3d",a[i]);
            sum=sum+a[i];
            if(max<a[i]){
                max=a[i];
                loc=i;
            }
        }
        System.out.println();
        System.out.println("sum="+sum);
        System.out.println("max="+max);
        System.out.println("loc="+loc);
    }
}

(3)编译并运行程序,结果如图所示。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值