Java练习记录

条件判断

1)if…else if…else 语句

if 语句后面可以跟 else if…else 语句,这种语句可以检测到多种可能的情况。使用 if,else if,else 语句的时候,需要注意下面几点:

  • if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。
  • if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
  • 一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。

语法:

if(布尔表达式 1){
   //如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
   //如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
   //如果布尔表达式 3的值为true执行代码
}else {
   //如果以上布尔表达式都不为true执行代码
}

例题:
某用户出差,根据出差星期发放津贴(如果不满一周算一周),每周的津贴是500元,求该用户出差一次的津贴,出差天数由键盘输入。

代码:

import java.util.Scanner;
public class exercise_1{
    public static void main(String[] args) {
        int salary=500;    //每周的津贴是500元
        Scanner TripTime=new Scanner(System.in);  //通过 Scanner 类来获取键盘输入的出差天数
        System.out.println("请输入您的出差天数:");
        int a=TripTime.nextInt();                // a接收键盘获取的出差天数
        if(a%7==0){                             // 判断两种出差情况
            System.out.println("您的津贴为:"+salary*(a/7));       
            // 出差天数与7取余若为0,则出差津贴=津贴*(a/7)
        }
        else if(a%7!=0){
            System.out.println("您的津贴为:"+salary*((a/7)+1));   
            // 出差天数与7取余若不为0,则出差津贴=津贴*(a/7)+1
        }
    }
}

循环控制

1)while 循环

语法:
while是最基本的循环,它的结构为:

while( 布尔表达式 ) {
  //循环内容
}

只要布尔表达式为 true,循环就会一直执行下去。

例题:
求1、3、5、…、19之积。

代码:

public class exercise_2{
 
    public static void main(String[] args) {
    int X=1;               //从1开始求奇数
    int product=1;             //不能为0
    while(X<=19 && X>0){       //使用whil循环求1~19的奇数
        product=product*X;     //求乘积
        X=X+2;                 //求奇数
    }
    System.out.println("1*3*5*...*19之积为:"+sum);
}

2)do…while 循环、break 关键字、if…else语句综合

  1. do…while 循环

对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。

语法:
do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。

do {
       //代码语句
}while(布尔表达式);

注意:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为 true,则语句块一直执行,直到布尔表达式的值为 false。

  1. break 关键字

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。

break 跳出最里层的循环,并且继续执行该循环下面的语句。

语法:
break 的用法很简单,就是循环结构中的一条语句:

break;
  1. if…else语句

if 语句后面可以跟 else 语句,当 if 语句的布尔表达式值为 false 时,else 语句块会被执行。

语法:

if(布尔表达式){
   //如果布尔表达式的值为true
}else{
   //如果布尔表达式的值为false
}

例题:
用户登录验证。验证次数最多3次
在这里插入图片描述
代码:

import java.util.Scanner;

public class log_in {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = 3;

do {

System.out.print("请输入用户名:");

String username = input.next();

System.out.print("请输入密码:");

String password = input.next();

if(username.equals("Jim") && 
password.equals("123456")) {

System.out.println("欢迎登录MyShopping系统!");
break;

}else {

System.out.println("输入错误!您还有"+(--n)+"次机会!\n");
}
}while(n>0);
if(n==0) {
System.out.println("对不起!您3次均输入错误!");
}
}
}
3)for循环嵌套if语句

虽然所有循环结构都可以用 while 或者 do…while表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。for循环执行的次数是在执行前就确定的。

语法:

for(初始化; 布尔表达式; 更新) {
    //代码语句
}

关于 for 循环有以下几点说明:

  • 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
  • 然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
  • 执行一次循环后,更新循环控制变量。
  • 再次检测布尔表达式。循环执行上面的过程。

例题:
鸡兔同笼是我国古代著名的趣题之一。大约在1500年前,《孙子算经》中记载了这样一道题:今有雉兔同笼,上有35个头,下有94足,问鸡兔各几只?试编写程序解决这个问题。

代码:

public class JiTu{
    public static void main(String[] args) {
        int foot = 94;
        int sum = 35;

        for (int chicken = 1; chicken <= foot / 2; chicken++) {
            int rabbit = sum - chicken;
            if(rabbit * 4 + chicken * 2 == foot){
                System.out.println("兔子的只数为:" + rabbit);
                System.out.println("鸡的只数为:" + chicken);
            }            
        }
    }
}

数组

1)声明数组变量

数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。Java 语言中提供的数组是用来存储固定大小的同类型元素。

首先必须声明数组变量,才能在程序中使用数组。

语法:

dataType[] arrayRefVar;   // 首选的方法
dataType arrayRefVar[];  // 效果相同,但不是首选方法

注意: 建议使用 dataType[] arrayRefVar 的声明风格声明数组变量。 dataType arrayRefVar[] 风格是来自 C/C++ 语言 ,在Java中采用是为了让 C/C++ 程序员能够快速理解java语言。

2)创建数组

Java语言使用new操作符来创建数组,语法如下:

语法:

arrayRefVar = new dataType[arraySize];

上面的语法语句做了两件事:

  1. 使用 dataType[arraySize] 创建了一个数组。
  2. 把新创建的数组的引用赋值给变量 arrayRefVar。

数组变量的声明,和创建数组可以用一条语句完成,如下所示:

dataType[] arrayRefVar = new dataType[arraySize];  //方法一

dataType[] arrayRefVar = {value0, value1, ..., valuek};  //方法二

3)例题

有两个数组:数组a:{7,12,4,9,6,3,9},数组b:{2,6,3,54,2,56,21,33},将两个数组合并为数组c,排序打印输出

代码:

import java.util.Arrays;
public class exercise_1{
    public static void main(String[] args) {
        int[] a = {7, 12, 4, 9, 6, 3, 9}; //定义数组a
        int[] b = {2, 6, 3, 54, 2, 56, 21, 33};  //定义数组b
        int[] c = new int[a.length + b.length];
        for (int i = 0; i < a.length; i++) {
            c[i] = a[i];
        }
        int n = 0;
        for (int i = a.length; i < c.length; i++) {
            c[i] = b[n];
            n++;
        }
        System.out.print("数组c为:");
        Arrays.sort(c);
        for (int i = 0; i < c.length; i++) {
            System.out.print(c[i]+",");
        }
    }
}

字符串

1)例题

有一个字符串 “itis cloudy tomorrow”
1)统计字符串中字母o出现的个数。
2)将字符串转换成一个字符串数组,要求每个数组元素都是一个有意义的英文单词,并打印输出。

代码:

import java.util.Scanner;
public class exercise2 {
    public static void main(String[] args) {
        // 有一个字符串 “itis cloudy tomorrow”
        String string = "itis cloudy tomorrow";
        System.out.println("输入你要查询的字母:");
        Scanner scanner = new Scanner(System.in);
        String word = scanner.next();
        scanner.close();
        System.out.println("1)该字母出现的个数为:");
        System.out.println(check(string, word));
        System.out.println("2)打印输出");
        {
            String sentence = new String("it is cloudy tomorrow");
            liu(sentence);
        }
    }
    public static int check(String str, String word) {
        // 1)统计字符串中字母o出现的个数。
        return str.length() - str.replace(word, "").length();
    }
    private static void liu(String sentence) {
        // 2)将字符串转换成一个字符串数组,要求每个数组元素都是一个有意义的英文单词,并打印输出。
        String str = "it is cloudy tomorrow";
        String[] arr = str.split(" +");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

类和对象

1)例题

创建一个Teacher类,要求描述姓名、性别、年龄、薪水,定义一个方法,用于在教师原有薪水的基础上增5000,再定义一个TeacherTest类,创建一个Teacher对象并初始化对象的各属性值,调用教师增加薪水的方法,并将增加薪水后的教师信息输出。

代码:

//创建一个Teacher对象并初始化对象的各属性值,调用教师增加薪水的方法,并将增加薪水后的教师信息输出。
public class TeacherTest {
    public static void main(String[] args) {
        // 初始化对象的各属性值
        Teacher teacher=new Teacher();
        Teacher.name="张三";
        Teacher.age=26;
        Teacher.salary=5500;
        String gender="男";
        System.out.println("姓名:"+teacher.name);
        System.out.println("性别:"+gender);
        System.out.println("年龄:"+teacher.age);
        // 用教师增加薪水的方法,并将增加薪水后的教师信息输出
        System.out.println("增加后的薪水:"+teacher.getSalary(teacher.salary));
    }
}
public class Teacher {
    // 创建一个Teacher类,要求描述姓名、性别、年龄、薪水
    static String name;
    String gender;
    static int age;
    static double salary;

    public double getSalary(double salary) {
        // 定义一个方法,用于在教师原有薪水的基础上增5000
        return salary + 5000;
    }
}

注:
本篇内容语法解释部分引自菜鸟教程-Java教程

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lannnn_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值