学习java
上一次我们说到学习变量和一些常用的数据类型,主要有:
int - double - char - String - boolean 。等
还有一些运算符,算术运算符,赋值运算符,关系运算符。
这里在说一下上一次有一个工具没有写的
import java.util.Scanner; //工具包
import java.wtil.*; //工具包
Scanner input = new Scanner(System.in); //打开工具包
int a = input.nextInt(); //使用工具包
这里 “ a ” 这一段代码是从键盘输入 int 的数字
这个工具是要经常使用的所以要记下来
这一次我们来学习以下内容:
选择结构
前面我们学习的执行顺序是从上到下,值到执行完最后一条语句结束,但生活中经常有需要进行条件判断,根据判断结果决定是否做一件事
本次内容单词有
if — 如果
else — 否则
break — 打破
continue — 继续
match — 比赛,配备
gender — 性别
random — 随机
score — 分数
if选择结构
为什么需要if选择结构
上面提到生活中需要判断,再做某件事。:去那吃饭,吃什么,
if选择结构是判断之后再做的一种法语结构。
语法
if ( ){
代码块 //成立执行,不成立不执行
}
如何使用if选择结构
我来写一段代码
public calss Dm{
public statrc void main (String [] args){
int a = 80 ; //张三的成绩80分
if (a > 70){//判断 如果大于就输出下面的语句
//否则 不会输出
System.out.println("张三的成绩及格了");
}
}
}
使用多个条件if
有二个条件 大于80 于大于70
我们在学个 逻辑运算符
&& 与 、 并且 条件1 && 条件2
两个条件同时为真,则结果为真;两个条件有一个为假,则结果为假
张三是60分于50; 60分及格 张三没有及格
|| 或 、或者 条件1||条件2
两个条件有一个为真,则结果为真;两个条件有同时为假,则结果为假
吃拉面 、吃泡面 有一个可以吃;两个也可以吃
! 非 !条件
条件为真时,则结果为假; 条件为假时,则结果为真
您真莱 等于 您牛弊 ; 你真好看 等于 你真丑
有了条件我们是不是可以使用他运算一下
张三的成绩于99分 并且 张三体育成绩77分
及格分 75 分
我们来写下代码
public class B{ //首字母大写
publc static void main(String [] args) { //main方法
int cj = 99; // 张三的成绩
int cj1 = 77 ; //张三的体育成绩
if(cj >98 && cj1>75 || cj ==100 && cj1 > 70){
System.out.println("及格了,老师说,很棒") //打印输出
}
//不成立的条件
if (cj >98 && cj1>75 || cj ==100 && cj1 > 70){
System.out.println("不格了,老师说,在学习学习") //打印输出
}
}
}
这样看起也可以,但我们有更好的方法解决。
就是 if —else
表示:“ 如果 ,就输入这个;否则,就输入那个”
小学生的语句,你也会的。
不过我们要学习java造句。
if —else选择结构语法
语法
if (条件){
//代码块1
}else{
//代码块2
}
我们在编写一次
public calss A{
public static void main (String [] args){
int a = 90 ; //张三的分数
if(a>80){
System.out.println("你家大人说,不错 奖励一个");
}else{
System.out.println("不要灰心,下一次继续加油");
}
}
}
我们在看一下我们现在可以做一个 以下 抽奖系统;
int 类名 = 键盘输入的int类型 % 10 ;得奇个位 除10%10;得奇十位 除100%10;得奇百位
思路有 :
1.生产随机数 int random = (int) (Math.random() * 10); //生产随机数代码
2.从控制台接收一个6位会员号
3.分解的起百位
4.判断是否是幸运会员
大家来做一下吧!
做好了
我们来讲一下 if - else 升级版
法语
if (条件1){
}else if (条件2){
代码1
}else{
代码2
}
讲个比喻
首先我们要有 成绩 60 —80 及格 80—90 好 90—100良好 我们要判断成绩在那一段
[外链图片转存失败(img-XOxapuKH-1567316667333)(F:\新建文本文档.PNG)]
public calss A {
public static void main (String [] args){
int score = 70 ;
if (score >= 80){
System.out.println("良好");
}else if (score >= 60){
System.out.println("中等");
}else {
System.out.println("差");
}
}
}
讲个简单版if 三目运算符
int a =1 ; int b = 1 ;
a = b ? “相等” : "不相等”;
if 总结
基本的if选择结构,可以处理单一的组合条件
if – else选择结构,可以简单的分支条件
多重if选择结构 , 可以处理连续区间的条件分支
嵌套if选择结构,可以处理复杂的条件分支
switch选择结构
什么使用swtitch选择结构
一个新的判断方式和 if 相比 可以更好的判断 “等值” 问题
法语
switch ( 表达式){
case 常量 1:
//代码块
break;
case 常量 2:
//代码块
break;
default :
//代码块
break;
}
知道了法语,那么它的执行过程是这样的呢 ?
先计算并获得 switch 后面的小括号里的表达式或变量的值,然后将计算结果顺序与每个 case 后的常量比较 , 当二者相同等时,执行 case 代码块 , 当遇到 break 时 ,就跳出 switch 选择结构 ,执行switch选择结构后的代码。如果没有任何一个 case 块的常量与 switch 后面的小括号的值相等,则执行 switch 末尾 部分的 default 块中代码。
先来一段代码
public calss A {
public static void main (String [] args){
int a = 1 ;
switch (a ) {
case 1 :
System.out.println("参加大学1个月夏令营");
break;
case 2 :
System.out.println("奖励笔记本电脑");
break;
case 3 :
System.out.println("参加移动硬盘");
break;
default :
System.out.println("没有奖励");
break;
}
}
}
当需要多重分支并且条件判断是等值判断的情况下,使用switch选择结构代替多重if选择结构会更简单,代码结构更清晰易读。在使用switch选择结构时不要忘记在每个case的最后写上break语句。
为了增加程序的健壮性,可以在程序中主动做出判断,并给出用户友好的提示。
default :
System.out.println(“输入错误”);
在实际开发中,遇到分支情况时,通常会综合运用if 选择结构的各种形式及switch选择结构来解决。
循环结构
本次内容单词有
while — 当 ······时候
od — 做
index —索引
big —错误
debug —调试
equal — 相等
step —步骤
error — 错误
rate — 比率
young — 年轻的
schedule — 时间表,调度
negative — 负
customer — 客户
birthday — 生日
point — 点 积分
continue — 继续
return – 返回
for — 为了
什么是循环结构
循环就是重复地做某件事 ;
我们生活也有很多循环, 如打印50分试卷 , 在400m跑到上进行10000m赛跑,做100道编程题,滚动的轮子。
不过我们不能一直无休的运行,满足一定条件的时候进行 循环 才会继续 ,称为“循环条件” 。循环条件不满足时, 循环退出 ; 期次 , 循环结构是反复进行相同的或类似的一系列操作 , 叫“循环操作”。
while循环结构
while (循环条件){
//循环操作
}
举例
int i = 1 ;
whle ( i < = 100 ) { //循环100次条件
System.out.println("好好学习,天天向上"); //循环内容
i = i++; //迭代 让i + 加到 101; 跳出循环
}
如何使用 while 循环结构
public calss A {
public static void main(String [] args){
int a = 1;
while (a <=50){ //循环50次条件
System.out.println("打印第"+a+"分试卷"); //循环内容
a++; //迭代 让i + 加到 51;跳出循环
}
}
}
使用 while 循环结构解决问题时 ,一定要注意检查循环能否 退出 ,避免出现 “ 死循环”
程序调试
“调试”这个词在生活中也经常听到,如电器调试、仪表调试。生活中的调试一般是指初装电器或电器出现问题时排除故障的过程,首先发现问题所在,然后调整电器的某些设置,最后使其达到正常的运行状态。在程序设计领域,调试的概念与其类似,但又有不同。
为了找出程序中的问题所在,希望程序在需要的地方暂停,以便查看运行到这里时变量的值。还希望单步运行程序,跟踪程序的运行流程,观察哪条语句执行了,哪条语句没有执行。
满足暂停程序观察变量和逐条执行语句等功能的工具和方法总称为程序调试
如何进行程序调试
1(分析段点)
2 (启动调试 , 单步执行)
3 (观察段点)
4 (修改程序)
do - while 循环
什么是 do - while 循环
法语
do {
// 循环操作
}while (循环条件);
do - while 循环执行顺序
1 声明并初始化
2 执行一遍循环操作
3 判断条件,如果循环条件满足,则循环继续执行,否则退出循环。
do - while 循环特点 是先执行,在判断。 do - while 循环直少循环一次
如何使用do - while 循环
使用do - while 循环解决 问题的步骤是类似的。
1 分析循环条件和循环操作。
2 套用 do - while 法语写出代码
3 检查循环能否退出。
我在写一段代码
import java.util.Scanner;
public class A {
public class void main (String [] args){
Scanner in = new Scanner(System.in);
String answer = ""; //标识是否合格
do{
System.out.println("上机编写程序!");
System.out.println("合格了吗?(y/n)");
answer = in.enxt();
System.out.printlln("")
}while (!"y".equals(answer));
System.out.println("恭喜你通过测试!");
}
}
小结
循环结构由循环条件和循环操作构成。只要满足循环条件,循环操作就会反复执行。
使用循环结解决问题的步骤:分析循环条件和循环操作,套用循环的法语写出代码,检查循环能否退出。
编写循环结构代码时需注意:循环变量的初值、循环操作中对循环变量值的改变和循环条件三者间的关系;确保循环次数正确,不要出现“死循环”。
while循环结构特点是先判断,后执行;do - while 循环结构先执行 ,再判断 。
程序调试是满足暂停程序,观察变量和逐条执行语句等功能的工具和方法的总称。其主要方法包括设置段点、单步运行和观察变量。
for循环
什么是 for 循环结构
循环语句主要作用是反复执行一段代码,直到满足一定条件为止。总结一下,可以把循环结构分成四个部分。
初始部分 : 设置循环的初始状态,如设置记录循环次数的变量 i 为 0 。
循环体 :重复执行的代码 , 即输出 “好好学习,天天向上!”。
迭代部分 : 下一次循环开始前要执行的部分,在while循环结构中它作为循环体的一部分,如使用“ i ++;”
进行循环次数累加。
循环条件 :判断是否继续循环条件,如使用 “ i < 100” 判断循环条件是否已经达到100。
在for 循环结构中,这几个部分同样必不可少,不然就会出现错误。for循环的一般格式
无论那一种循环结构,都有四个必不可少的部分: 初始部分、循环条件、循环体、迭代部分,
缺少了任何一个都可能造成严重错误。
法语
for(表达式1;表达式2;表达式3){ // “ ;;”是必不可少的 ,用来隔开 三部分
//循环体
}
for循环结构执行的顺序
执行初始部分 (int i = 0;)。 //声明循环变量 i ,用来记录循环次数。
进行循环条件判断( i < 100;)。 //是循环条件
根据循环条件判断结果。 如果 为 true ,则执行循环体;如果为false, 则退出循环,步骤
和步骤 均不执行。
执行迭代部分,改变循环变量值 ( i ++)。
依次重复步骤 ,值到退出for 循环结构。
可见,在for循环结构中,表达式1 这个初始化部分仅仅执行了一次。
表达式2和表达式3则可执行多次。循环体可能多次循环,也可能一次都不执行。
如何使用for循环结构
import java.util.*;
poblic class A {
public static void main(String[] args){
int score; //每门课的处境
int sum =0; //处境之和
double avg = 0.0; //平均分
Sanner in = new Scanner(System.in);
System.out.println("输入学生姓名:");
String name = in.next();
for (int i = 0;i< 5 ; i++){ //循环五次,录入五门课成的成绩
System.out.println("请输入5门功课中第"+(i+1)+"门课的成绩:");
score = in.nextInt(); //录入成绩
sum = sum+score; //计算成绩和
}
avg = (double)sum/5; //计算平均分
System.out.println(name+"的平均分是:"+avg);
}
}
循环体是 “录入成绩,并累加求和”。
整个循环过程:首先执行初始化部分,即 i = 0;然后判断循环条件,如果为 true 则执行一次循环体;
循环体结束后,执行迭代部分 i++ ;再判断循环条件,如果仍为 true,则继续执行循环体,迭代部分·······
依次类推,直到循环条件为 false ,退出循环。
跳转语句
break continue
break 语句用于终止某个循环,程序跳转到循环体外的下一条语句。
continue语句用于跳出本次循环,进入下一次循环的语句。
数组
本次单词有
array—数组
length—长度
sort—排序
maximum—最大值
minimum—最小值
reference—引用-参考
info—信息
primitive—原型
数组概述
java中的数组
在java中。数组就是一个变量,用于将相同数据类型数据存储在内存中。数组中的每一个数据元素都属于同一数据类型。
下面来看数组的基本要素。
标识符。首先,和变量一样,在计算机中,数组也要有一个名称,称为标识符,用于区分
不同的数组。
数组元素。当给出了数组名称,即数组标识符后,要向数组中存放数据,这些数据就称为
数组元素。
数组下标。在数组中,为了正确地得到数组的元素,需要对它们进行编号,这样计算机才
能根据编号去存取,这个编号就称为**`数组下标**。 下标是从0开始
元素类型。存储在数组中的数组元素应该是同一数据类型,如可以把学员的成绩存储在数
组中,而每一个学员的成绩可以用整型变量存储,因此称它的元素类型是整型。
如何使用数组
1.声明数组
法语
数据类型 [] 数组名;
2.分配空间
虽然声明了数组,但并不会为数组元素分配空间,此时还不能使用数组。因此要为数组分配空间,这样数组的每一个元素才能对应一个存储单元。
法语
数组名 = new 数据类型[数组长度];
一旦声明了数字的大小就不能再修改,即数组的长度是固定的。
3.赋值
分配空间后可以向数组里放数据了。数组中的每一个元素都是通过下标来访问。
法语
数组名[下标值];
在java中还题供了另一种创建数组的方式,它将声明数组,分配空间和赋值合并完成。
法语
数据类型 [] 数组名 = {值1,,值2,值3,值n};
数组应用
数组排序
数组排序是实际开发中比较常用操作,如需要对存放在数组中的五位学员的考试成绩从低到高排序,
法语
arrays.sort(数组名);
向数组中插入元素
有一组学员的成绩是{99,85,82,63,60},将他们按降序排序,保存在一个数字中。现需要增加一个学员的成绩,将他插入数组,并保持成绩降序排列。
代码
import java.util.Scanner;
public slass A{
public static void main(String [] args){
int [] list = new int [6]; //长度为6
list [0] = 99;
list [1] = 85;
list [2] = 82;
list [3] = 63;
list [4] = 60;
int index = list.length; //保存新增成绩插入位置
System.out.println("请输入新增成绩:")
Scanner input = new Scanner(System.in);
int num = input.nextInt(); //输入要插入位置
//找到新元素的插入位置
for(int i =0; i <list.ength;i++){
if (num > list[i]){
index = i;
break;
}
}
//元素后移
for(int j = list.length-1; j >index; j--){
list[j] = lisst[j-1];
}
list[index] = num;
System.out.println("插入的成绩的下标是:"+index);
System.out.println("插入后的成绩信息是:");
for(int k = 0; k < lise.length; k++ )
System.out.print(list[k]+"\t");
}
}
总结
数组是可以在内存中连续存储多个元素的结构,数组中的所有元素必须属于相同的数据类型
数组可用的元素通过数组的下标进行访问,数组是从0开始。
数组可用循环为元素赋值,或者循环输出数组中,元素信息。
通过数组,length 可获得数组的长度。
利用Arrays类提供sort()这个方法可以方便地对数组中的元素进行排序。