Java练习小结

练习一:制作图示表格

package Text;

import java.awt.*;
import java.util.Arrays;
import java.sql.SQLOutput;
import java.util.Formattable;
import java.util.Formatter;
import java.util.Scanner;

public class EX02 {
    public static void main(String[] args) {
        double Averge=0.0,sum=0.0;
        String[] Names=new String[50];
        double[] Score=new double[50];
        int i,j=5;
        for(i=0;i<j;i++) {
            Scanner Name = new Scanner(System.in);
            System.out.print("请输入学生姓名:");
            Names[i]=Name.nextLine();//nextLine可以接受空格,遇到回车结束输入
            Scanner score = new Scanner(System.in);
            System.out.print("\t请输入该生java成绩:");
            Score[i]=score.nextDouble();
        }
        System.out.println("----------------------");
        System.out.println("   2020信工java成绩");
        System.out.println("序号     姓名     成绩");
        for(i=0;i<j;i++) {
            System.out.print(i+1+"\t\t");
            System.out.print(Names[i]);
            System.out.printf("\t%-3.1f\n",Score[i]);
        }
        for(i=0;i<j;i++){
            sum+=Score[i];
            Averge=(1.0/j)*sum;
        }
        System.out.println("平均分:\t"+Averge);
        System.out.println("----------------------");
    }
  }

输出结果为

 从键盘读取姓名时,遇到两个字的姓名,中间要空两格,否则成绩栏无法对齐

【遇到的困难】

①在输入两个字的名字,如“张蕾”时,由于“张蕾”不足8位,制表符补全当前字符串长度到8,

而在输入三个字的名字时,制表符\t额外增加了8位空格,在按行输出的情况下导致成绩栏无法对齐

②尝试使用方法打印出数组中某个元素的长度,失败。使用length只会输出整个数组的长度,搜寻半天得知https://blog.csdn.net/trustme___/article/details/109094903?ops_request_misc=&request_id=&biz_id=102&utm_term=java%E4%B8%AD%E5%A6%82%E4%BD%95%E8%8E%B7%E5%BE%97%E6%95%B0%E7%BB%84%E7%9A%84%E7%9C%9F%E6%98%AF%E9%95%BF%E5%BA%A6&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-109094903.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187https://blog.csdn.net/trustme___/article/details/109094903?ops_request_misc=&request_id=&biz_id=102&utm_term=java%E4%B8%AD%E5%A6%82%E4%BD%95%E8%8E%B7%E5%BE%97%E6%95%B0%E7%BB%84%E7%9A%84%E7%9C%9F%E6%98%AF%E9%95%BF%E5%BA%A6&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-109094903.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187icon-default.png?t=LA92https://blog.csdn.net/trustme___/article/details/109094903?ops_request_misc=&request_id=&biz_id=102&utm_term=java%E4%B8%AD%E5%A6%82%E4%BD%95%E8%8E%B7%E5%BE%97%E6%95%B0%E7%BB%84%E7%9A%84%E7%9C%9F%E6%98%AF%E9%95%BF%E5%BA%A6&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-109094903.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187

在Java中没有函数可以获得数组的实际长度

③尝试将成绩数组即Score[]单独输出,创建一个新的方法。但需要使用类似C语言中的全局变量,查阅得知java中定义一个静态变量static可起到与全局变量相同的效果,但今天也只是浅尝即止,不求甚解,今后再去学习

暂时无更优解,愿意接受大家指教


 2021年11月12日修改

//将输出循环改为
for(i=0;i<j;i++) {
            System.out.printf("%d\t  %5s\t%-3.1f\n",(i+1),Names[i],Score[i]);
        }
//可以成功对齐

结果为:

 (感谢老师和各位同学)


 

 

练习2:

package Text;

import java.util.Scanner;

public class Ex03 {
    public static void main(String[] args) {
        System.out.println("--------------------------------------------");
        System.out.println("             商场推出幸运抽奖活动");
        System.out.println("抽奖规则:");
        System.out.println("     4位会员卡号的各位数字之和大于20即为幸运顾客");
        System.out.println("--------------------------------------------");
        int A,B,C,D,Sum=0;
        Scanner Num=new Scanner(System.in);
        System.out.println("请输入4位会员卡号:");
        int num=Num.nextInt();
        D=num%10;
        C=(num%100)/10;
        B=(num%1000)/100;
        A=num/1000;
        Sum=A+B+C+D;
        boolean truth=(Sum>20);
        System.out.println("会员卡号"+num+"各位之和:"+Sum);
        System.out.println("是幸运顾客吗?\n"+truth);

    }
}

输出结果为

 比较简单,无技术含量

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java多线程是指在一个Java程序中同时执行多个线程,每个线程都是独立的执行流。Java中创建线程的方式有三种:继承Thread类、实现Runnable接口和实现Callable接口。每种方式都有其优缺点。 1. 继承Thread类创建线程类: ```java class MyThread extends Thread { public void run() { // 线程执行的代码 } } // 创建线程对象并启动线程 MyThread thread = new MyThread(); thread.start(); ``` 优点:简单易用,可以直接重写Thread类的run()方法。 缺点:由于Java不支持多继承,继承了Thread类就无法再继承其他类。 2. 实现Runnable接口创建线程类: ```java class MyRunnable implements Runnable { public void run() { // 线程执行的代码 } } // 创建线程对象并启动线程 Thread thread = new Thread(new MyRunnable()); thread.start(); ``` 优点:避免了单继承的限制,可以继续继承其他类或实现其他接口。 缺点:需要额外创建Thread对象,并将Runnable对象作为参数传递给Thread对象。 3. 实现Callable接口创建线程类: ```java class MyCallable implements Callable<Integer> { public Integer call() throws Exception { // 线程执行的代码 return 0; } } // 创建线程池对象 ExecutorService executor = Executors.newFixedThreadPool(1); // 提交Callable任务并获取Future对象 Future<Integer> future = executor.submit(new MyCallable()); // 获取线程执行结果 int result = future.get(); ``` 优点:可以获取线程执行的结果,并且可以抛出异常。 缺点:相对于前两种方式,使用Callable需要更多的代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值