复习java的例子(第一天)

1、 编写程序:从键盘上读入一个学生成绩,
存放在变量score中,根据score的值输出其对应的成绩等级:
score>=90 等级: A
70=<score<90 等级: B
60=<score<70 等级: C
score<60 等级: D


import java.util.Scanner;
public class Course{
public static void main(String []arg){
Scanner scanner = new Scanner(System.in);
System.out.print("请输入学生的学习成绩, score=");
int score = scanner.nextInt();
switch(score/10){
case 10:
case 9:
System.out.println("A");
break;
case 8:
case 7:
System.out.println("B");
break;
case 6:
System.out.println("C");
break;
default:
System.out.println("D");
}
}
}


2、编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,
对它们进行排序(使用 if-else if-else),并且从小到大输出。


import java.util.Scanner;
public class Course{
public static void main(String []arg){
System.out.print("请输入三个数字:");
Scanner scanner = new Scanner(System.in);
System.out.print("第一个数字:num1 = ");
int num1 = scanner.nextInt();
System.out.print("第二个数字:num2 = ");
int num2 =scanner.nextInt();
System.out.print("第三个数字:num3 = ");
int num3 =scanner.nextInt();

if(num1<=num2){
if(num3<=num1){
          System.out.println("您输入的三个数字从小到大排序为:"
+num3+" , "+num1+" , "+num2);}
else if(num3>=num2){
          System.out.println("您输入的三个数字从小到大为:"
+num1+" , "+num2+" , "+num3);}
else{
System.out.println("您输入的三个数字从小到大为:"
+num1+" , "+num3+" , "+num2);}
}else{
if(num3<=num2){System.out.println("您输入的三个数字从小到大排序为:"
+num3+" , "+num2+" , "+num1);}
else if(num3>=num1){System.out.println("您输入的三个数字从小到大为:"
+num2+" , "+num1+" , "+num3);}
else{System.out.println("您输入的三个数字从小到大为:"
+num2+" , "+num3+" , "+num1);}
}
}
}


3、输入 2013 年的某个月份和日期, 例如 month=4, day=21
  经过程序计算, 打印出输入的月份和日期是 2013 年的第几天. 31+28+31+21


import java.util.Scanner;
public class TestSwitch{
public static void main(String [] args){
     System.out.print("month:");
int month = scanner.nextInt();

System.out.print("day:");
int day = scanner.nextInt();

int days = day;
switch(month - 1){
case 11:
days += 30;
case 10:
days += 31;
case 9:
days += 30;
case 8:
days += 31;
case 7:
days += 31;
case 6:
days += 30;
case 5:
days += 31;
case 4:
days += 30;
case 3:
days += 31;
case 2:
days += 28;
case 1:
days += 31;
}
System.out.println(month + "月" + day + "日是 2013 年的第" + days + "天");
}
}


4、从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束输入。


import java.util.Scanner;
public class Demo1{
  public static void main(String [] args){
    Scanner scanner = new Scanner(System.in);
//标记正数的个数
int x = 0;
//标记负数的个数
int y = 0;
while(true){
int b = scanner.nextInt();
if(b > 0){
x++;
}else if(b < 0){
y++;
}else{
//退出循环使用 break 语句.
break;
}
}

}

   
5.(1)从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
成绩>=最高分-10 等级为’A’ 成绩>=最高分-20 等级为’B’
成绩>=最高分-30 等级为’C’ 其余 等级为’D’
提示:先读入学生人数,根据人数创建int数组,存放学生成绩。
(2)使用二维数组打印 10 行的杨辉三角。


package com.atguigu.java;

import java.util.Scanner;

public class TestArray {

public static void main(String[] args) {

//1. 数组的声明
//int i = 0;
int [] a = null; //推荐使用此种方式进行声明.
int b [] = null;

//注意: Java语言中声明数组时不能指定其长度(数组中元素的数)
//int [5] c = null;

//注意: 若没有为数组变量分配指向的内存空间, 就调用其属性, 会在运行时发生 "空指针异常"
//System.out.println(a.length);

//2. 为数组分配内存空间
a = new int[10];

//3. 获取数组的长度
System.out.println(a.length); //10

//5. 对数组元素进行初始化
for(int i = 0; i < a.length; i++){
a[i] = 100 + i;
}

/*4. 访问数组的元素: 数组名[数组元素下标]. 注意: 下标从 0 开始,
所以最大值是 lengh - 1, 而不是length;*/
//数组元素会进行默认的初始化:
for(int i = 0; i < a.length; i++){
System.out.println(a[i]);
}

//若访问数组的下标超过合法范围, 则在运行时会抛出 ArrayIndexOutOfBoundsException
//a[10] = 10;

//数组的静态初始化
int [] c = {1, 2, 3, 4, 5};
int [] d = new int[]{2, 3, 4, 5, 6};

for(int i = 0; i < d.length; i++){
System.out.println(d[i]);
}

//声明一个二维数组
int [][] aa = new int[5][];

//对二维数组的元素进行初始化: 二维数组的元素是一个一维数组!
//遍历需要使用嵌套的 for 循环.
for(int i = 0; i < aa.length; i++){
aa[i] = new int[i + 1];

for(int j = 0; j < aa[i].length; j++){
aa[i][j] = 1 + i * j;
}
}

//对二维数组进行遍历
for(int i = 0; i < aa.length; i++){
for(int j = 0; j < aa[i].length; j++){
System.out.print(aa[i][j] + " ");
}
System.out.println();
}

/**
* 2.从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
* 成绩>=最高分-10 等级为’A’ 成绩>=最高分-20 等级为’B’
* 成绩>=最高分-30 等级为’C’ 其余 等级为’D’
* 提示:先读入学生人数,根据人数创建int数组,存放学生成绩。
*/

//1. 创建 Scanner 类
Scanner scanner = new Scanner(System.in);

//2. 读入要录入的学生人数
System.out.print("请输入学生人数");
int count = scanner.nextInt();

//3. 创建一个 int 类型的数组, 用于存放学员的成绩, 数组的长度为 2 所录入数值
int [] scores = new int[count];

//4. 利用循环录入学生的成绩, 同时得到最高分. 把学生成绩录入到 3 声明的数组中.
int highScore = 0;

for(int i = 0; i < scores.length; i++){
scores[i] = scanner.nextInt();

if(scores[i] > highScore){
highScore = scores[i];
}
}

//5. 遍历 3 声明的数组, 根据最高分, 获取学生的升级等级.
for(int i = 0; i < scores.length; i++){
if(scores[i] >= highScore - 10){
System.out.println("student " + i + " score is " + scores[i] + " grade is A");
}else if(scores[i] >= highScore - 20){
System.out.println("student " + i + " score is " + scores[i] + " grade is B");
}else if(scores[i] >= highScore - 30){
System.out.println("student " + i + " score is " + scores[i] + " grade is C");
}else{
System.out.println("student " + i + " score is " + scores[i] + " grade is D");
}
}

//作业: 使用二维数组打印 10 行的杨辉三角, 杨辉三角实际上是二项式展开式的系数
/**
* 1 (a+b)^0
* 1 1 (a+b)^1
* 1 2 1 (a+b)^2
* 1 3 3 1 (a+b)^3
* 1 4 6 4 1
* 1 5 10 10 5 1
*
* ...
*
* 1. 什么是杨辉三角: 二项式展开式的系数
* 2. 为什么使用的是 二维数组: 因为杨辉三角由行和列组成, 每一行是一个一维数组,
而杨辉三角则是有一维数组组成的数组, 即二维数组.
* 3. 杨辉三角的具体特点:
* 3.1 第 n 行有 n 个元素(n >= 1)
* 3.2 每一行的第一个元素和最后一个元素都是 1
* 3.3 不等于 1 的那些元素的值为上一行的对应列和对应列的前一列的元素的和.
*/

//1. 先声明一个二维数组: 二维数组有 10 个元素
int [][] yh = new int[10][];

//2. 对二维数组的元素进行初始化: 第 i 个元素(i 从 0 开始) 为长度为 i + 1 的一维数组.
for(int i = 0; i < yh.length; i++){
//二维数组的每一个元素是一维数组, 而一维数组时引用类型, 其默认值为 null
//System.out.println(yh[i]);
yh[i] = new int[i + 1];

//3. 对具体的每一个元素进行初始化(是 1 的元素): yh[i][0] = 1, yh[i][i] = 1
yh[i][0] = 1;
yh[i][i] = 1;

//4. 对具体的每一个元素进行初始化(不是 1 的元素): yh[i][j] = yh[i-1][j] + yh[i-1][j-1];
// (i > 1 && j > 0 && j < i)
if(i > 1){
for(int j = 1; j < i; j++){
yh[i][j] = yh[i-1][j] + yh[i-1][j-1];
}
}
}

//打印
for(int i = 0; i < yh.length; i++){
for(int j = 0; j < yh[i].length; j++){
System.out.print(yh[i][j] + "\t");
}
System.out.println();
}
}
}


6、打印 1-100 之间的所有素数


package com.atguigu.java;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello eclipse...");

//打印 1-100 之间的所有素数
//素数: 有且仅有两个正约数的整数. 即 2 ~ i-1 之间没有一个是其约数.
//标记一个整数是素数. true 表示是一个素数, false 表示不是素数.
boolean flag = true;
long begin = System.currentTimeMillis();
for(int i = 2; i <= 100000; i++){
flag = true;
/**
* 16
*
* 2 8
* 3
* 4 4
* 5
* 7
* 8 2
*
*
*/

//从 2 循环到 i-1, 检验每一个数是否为 i 的约数.
for(int j = 2; j <= Math.sqrt(i); j++){
if(i % j == 0){
flag = false;
//结束这次循环.
break;
}
}

if(flag){
System.out.println(i);
}
}
long end = System.currentTimeMillis();
System.out.println("time: " + (end - begin)); //2194 98
}
}



复习java的例子(第一天),码迷,mamicode.com

时间: 2024-10-11 06:38:26

复习java的例子(第一天)的相关文章

复习java基础第一天

一:static static: 静态的.   1. 若需要一个类的多个对象共享一个变量,则该变量需要使用 static 修饰.   2. 因为 static 修饰的变量为类的所有的实例所共享,所以 static 成员不属于某个类的实例, 而属于整个类.     所以在访问权限允许的情况下,可以使用 "类名." 直接访问静态成员(成员包括属性和方法).  3. 注意: 在静态方法里只能直接调用同类中其它的静态成员(包括变量和方法),而不能直接访问类中的非静态成员.     这是因为,对

20145326蔡馨熠《Java程序设计》第一周学习总结

20145326蔡馨熠 <Java程序设计>第一周学习总结 教材学习内容总结 转眼间新的一学期终于开始了!为什么我这么期待呢?因为这学期可以上娄嘉鹏老师的java程序设计课,我不是什么电脑天才,之前c语言学得也不是特别好.可我就是对hdl和java特别感兴趣(之前在我的问卷调查报告里面提到过),并且寒假的时候在家里也预习了一部分java知识.第一周要求学习两个章节并作心得体会,虽然我早已看过前两章的知识,不过为了进一步巩固,我还是用了星期六一天的时间把第一章和第二章的知识从头到尾仔仔细细的看了

复习java第五天(枚举、Annotation(注释) 概述)

一.枚举 传统的方式: ?在某些情况下,一个类的对象是有限而且固定的.例如季节类,只能有 4 个对象 ?手动实现枚举类: -private 修饰构造器. -属性使用 private final 修饰. -把该类的所有实例都使用 public static final 来修饰. 练习代码: 1 public class Season { 2 3 //1.因为类的对象是固定的,所以类的属性是常量 4 public final String name; 5 public final String de

复习java基础第三天(集合)

一.Collection常用的方法: Java 集合可分为 Set.List 和 Map 三种体系: Set:无序.不可重复的集合. List:有序,可重复的集合. Map:具有映射关系的集合. Collection 接口是 List.Set 和 Queue 接口的父接口, 该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合: import java.util.ArrayList; import java.util.Collection; import j

20145231 《Java程序设计》第一周学习总结

20145231 <Java程序设计>第一周学习总结 教材学习内容总结 Java三大平台Java SE,Java EE,Java ME.其中,Java SE是我们学习的基础. Java SE主要分为四个部分:JVM,JRE,JDK和JAVA语言. 思考题:Java不只是语言?答:根据以上所写就能知道,提到Java,Java语言只是其三大平台中的其中之一的一个组成部分,不可片面的将其与C语言作比较,认为只是一种语言. JCP与JSR.RI.TCK的关系:想要提议加入Java的功能或特性,必须以J

20145201 《Java程序设计》第一周学习总结

# 20145201 <Java程序设计>第一周学习总结 ## 教材学习内容总结 万事开头难,终于开始学习了Java.寒假的时候看到老师的要求确实有点慌,但是这周翻开书,从书本知识第一行学起,发现并不是自己想想中那么难,只要一步一个脚印,每周有自己的计划,并按照计划按部就班的完成,最后一定会拥有自己的小成果的. 1.1Java不只是语言 Java经过多年的版本更新后,最新的版本是Java SE8. 在java发展的过程中,它的应用领域越来越广,根据不同级别的应用开发区分了不同的应用版本,最终j

20145224-陈颢文 《Java程序设计》第一周学习总结

20145224 <Java程序设计>第一周学习总结 教材学习内容总结 通过第一周的学习让我对Java有了个初步的了解,知道了Java分为Java SE.Java EE.Java ME三大平台,其中Java SE是基础.Java的一大特点是它可以跨平台,而JVM对Java的跨平台提供了支持,它就类似于一个虚拟机,只要在当前平台安装了相应的JVM,Java程序就有了可以在此平台上运行的基础啦.JRE是Java的执行环境,在安装了JRE的计算机上就可以运行Java的程序了,当然光是可以跑代码对于程

Java学习记录第一章

学习Java第一章的记录,这一章主要记录的是Java的最基础部分的了解知识,了解Java的特性和开发环境还有Java语言的优缺点. 计算机语言的发展大概过程:机器语言--->汇编语言--->高级语言(面向过程的语言和面向对象的语言)总而言之就是从人类比较难识别的字符串向人类自然语言靠近使代码的可读性越来越高. Java的发展过程:1991年Sun公司为了抢占市场先机,成立了一个称为Green的项目小组,帕特里克.詹姆斯·高斯林.麦克·舍林丹和其他几个工程师一起组成的工作小组在加利福尼亚州门洛帕

20145201 《Java程序设计》第一周学习总结(修改)

# 20145201 <Java程序设计>第一周学习总结 ## 教材学习内容总结 万事开头难,终于开始学习了Java.寒假的时候看到老师的要求确实有点慌,但是这周翻开书,从书本知识第一行学起,发现并不是自己想想中那么难,只要一步一个脚印,每周有自己的计划,并按照计划按部就班的完成,最后一定会拥有自己的小成果的. 1.1Java不只是语言 Java经过多年的版本更新后,最新的版本是Java SE8. 在java发展的过程中,它的应用领域越来越广,根据不同级别的应用开发区分了不同的应用版本,最终j