java之实战篇章:二java基础下

一、流程控制

1、条件语句

if语句

框架:

if(条件1){  
    if(条件2){  
        代码块1  
    }  
    else{  
        代码块2  
    }  
}  
else{  
    代码块3  
}  

题目:
小明考了 78 分,60 分以上及格,80 分以上为良好,90 分以上为优秀,60 分以下要重考,编写源代码 ScoreJudge.java,输出小明的情况。

public class SourceJudge{
    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.print("成绩合格");
                }
            }

        else{
            System.out.println("需要补考");
        }
        
    }
}

switch语句

switch(表达式){  
    case1:  
        代码块1  
        break;  
    case2:  
        代码块2  
        break;  
    ...  
    default:  
        默认执行的代码块  
}  

switch 后表达式的值和 case 语句后的值相同时,从该位置开始向下执行,直到遇到 break 语句或者 switch 语句块结束;如果没有匹配的 case语句则执行 default 块的代码。

defualt 块不是必须的,默认为空。

习题
给出一个数,判断是几等奖。

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("恭喜你,下次再来");

        }
    }
}

2、循环语句

while和do-while

while
while 的执行过程是先判断,再执行。

while(条件){  
    代码块  
}  

do-while
do-while 的执行过程是先执行一次,再循环判断(所以循环内的代码至少会执行一次)。

do{  
    代码块  
}while(条件);  

练习
练习:分别用 while 和 do-while 两种方法,编写代码,文件名为: SumOfEven.java。实现计算 1-1000 中所有偶数的和,并输出。验证一下两种方法你输出的结果是一致吗?

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

        while(i1 <= 1000){
            if(i1 % 2 == 0){
                sum1 = sum1 + i1;
            }
            i1 = i1 + 1;
        }
        System.out.println("while    :    ",sum1);

        do{
            if(i2 % 2 == 0){
                sum2 = sum2 + i2;
            }
            i2 = i2 + 1;
        } while(i2 <= 1000);
        System.out.println("do-while    :    "+sum2);
    }
}

for语句

for(循环变量初始化①; 循环条件②; 循环变量值操作③){  
    循环操作④  
}  

练习: 1-1000 中所有偶数的和,并输出。


public class SumOfEven{
    public static void main(String[] args){
        int sum = 0;
        int i;
        for(i = 1; i <= 1000; i++){
            if(i % 2 == 0){
                sum += i;
            }
        }

        System.out.println(sum);
    }
}

使用for语句去除字符串空格

import java.util.Scanner;  
public class StringUtil {  
    public static void main(String[] args) {  
        Scanner in =new Scanner(System.in);  
        //获取String值  
        String a=in.nextLine();  
        StringBuilder stringBuilder = new StringBuilder(a);  
        for (int i = 0; i < stringBuilder.length(); i++) {  
            if (stringBuilder.charAt(i)==' ') {  
                stringBuilder.deleteCharAt(i);  
                i--;  
            }  
        }  
        System.out.println(stringBuilder.toString());  
    }  
}  


或者
import java.util.Scanner;

public class HelloWorld {
    public static void main(String[] args) {
        Scanner in =new Scanner(System.in);
        //获取String值
        String a=in.nextLine();
        StringBuilder stringBuilder = new StringBuilder(a);
        for (int i = 0; i < stringBuilder.length(); i++) {
            if (stringBuilder.charAt(i)==' ') {
                stringBuilder.deleteCharAt(i);
                i--;
            }
        }
        System.out.println(stringBuilder.toString());
    }
}

练习
从控制台输入字符串 a 和字符串 b。
比较字符串 a 和字符 b 是否完全一致,长度,内容等完全一致。
如果完全一致,输出相同,如果不一致,输出不同。
禁止使用 equals 方法。

import java.util.Scanner;  

public class ContrastString {  
    public static void main(String[] args) {  
        Scanner in = new Scanner(System.in);  
        //获取String值  
        String a = in.nextLine();  
        String b = in.nextLine();  
        if (a.length() != b.length()) {  
            System.out.println("不同");  
            return;  
        }  
        for (int i = 0; i < a.length(); i++) {  
            if (a.charAt(i) != b.charAt(i)) {  
                System.out.println("不同");  
                return;  
            }  
        }  
        System.out.println("相同");  
    }  
}  

3、跳转语句

public class Jump{
    public static void main(String[] args){
        for(int i = 1; i <= 10; i++){
            System.out.println("循环第"+i+"次");
            if(i%3==0){
                break;
            }
            if(i%5==0){
                System.out.println("我进来了");
            }
        }

        for(int i = 1; i <= 10; i++){
            if(i % 2 == 0){
                continue;  
            }
            System.out.println(i);
        }
    }
}

4、继续练习

打印星期

import java.util.Scanner;
public class PrintWeek{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int x = in.nextInt();

        switch(x){
            case 1:
                System.out.println("今天是星期一");
                break;
            case 2:
                System.out.println("今天是星期二");
                break;
            case 3:
                System.out.println("今天是星期三");
                break;
            case 4:
                System.out.println("今天是星期四");
                break;
            case 5:
                System.out.println("今天是星期五");
                break;
            case 6:
                System.out.println("今天是星期六");
                break;
            case 7:
                System.out.println("今天是星期七");
                break;

        }
    }
}

二、数组

所谓数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便,把具有相同类型的若干元素按无序的形式组织起来的一种形式。这些无序排列的同类数据元素的集合称为数组。数组是用于储存多个相同类型数据的集合。-- 来自百度百科

简单来说,数组就是相同数据类型的元素按一定顺序排列的集合。可以把它看成一个大的盒子,里面按顺序存放了多个数据类型相同的数据。

一维数组

声明数组

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

初始化数组,为数据定义存储空间

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

理解数组的引用

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++){
            System.out.println("first"+a2[i]);
            a2[i] ++;
        }

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

可以看到,修改 a2 的值,a1 的值也跟着变化。

另外一个练习

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

二维数组

数据类型 [][] 数组名 = new 数据类型[行的个数][列的个数];  

//或者  
数据类型 [][] 数组名;  
数组名 = new 数据类型[行的个数][列的个数];  

//也可以  
数据类型 [][] 数组名 = {  
{第一行值1,第一行值2,...}  
{第二行值1,第二行值2,...}  
...  
}  

//二维数组的赋值和访问,跟一维数组类似,可以通过下标来逐个赋值和访问,注意索引从 0 开始  
数组名[行的索引][列的索引] =;  
public class ArrayTest{
    public static void main(String[] ags){
        String[][] name = {{"guoyu","zhagnxiaoqiang"},{"xiaocong0","zanxuli","liuwei"}};
        for(int i = 0; i< name.length;i++){
            for(int j = 0; j < name[i].length;j++){
                System.out.println(name[i][j]);
            }

        }

    }
}

练习题目:
有一份成绩单,上面有 10 位学生的成绩(61,57,95,85,75,65,44,66,90,32),请求出平均成绩并输出。

public class AverageScore{
    public static void main(String[] args){
        int [] score = {61,57,95,85,75,65,44,66,90,32};
        int sum = 0;
        for(int i = 0; i < score.length; i++){
            sum = sum + score[i];
        }
        int avg = sum/score.length;
        System.out.println(avg);

    }
}

另外一个练习:获取输入

import java.util.Scanner;
public class ScannerDemo{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        String s = in.nextLine();
        System.out.println(s);

        //循环输入String数据,当输入eixt时退出循环
        while(!in.hasNext("exit")){
            System.out.println(in.nextLine());

        }
        //关闭输入
        in.close();

    }
}

另外一个练习
在这里插入图片描述

import java.util.Scanner;
import java.util.*;

public class InputTest{
    public static void main(String[] args){
        System.out.println("输入:");

        Scanner in = new Scanner(System.in);

        //ArrayList strList = new ArrayList();
        ArrayList<String> strList = new ArrayList<String>();
        while(!in.hasNext("end")){
            String str = in.nextLine();
            strList.add(str);
        }
        for(int i = 0; i<strList.size();i++){
            System.out.println(strList.get(i));
        }
    }
}

练习题
现给出一串数据(313, 89, 123, 323, 313, 15, 90, 56, 39)求出最大值和最小值并输出。

public class MaxAndMin{
    public static void main(String[] args){
        int [] array = {313,89,123,323,313,15,90,56,39};

        int max=array[0],min=array[0];

        for(int i =1; i<array.length;i++){
            if(array[i] > max){
                max = array[i];
            }
            if(array[i] < min){
                min = array[i];
            }
        }
        System.out.println(max);
        System.out.println(min);
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值