您的位置 首页 java

JAVA笔记(四)——三大结构语句

1.选择结构if:

a.why: 在实际生活中,有些场合需要满足一定条件才能继续往下进行?

b.语法:

 if(条件){   //条件是  boolean  或者  boolean结果的表达式
    执行代码;
}  

c.eg:

 @Test   
    public void TestA(){
        //1. 简单的if条件结构
        int a =10;
        int b =5;
        if(a>b){  //()括号里面放入的是关系表达式或者逻辑表达式
            System.out.println("a的值比b的值大!");
        }
    }  

2、选择结构if…else…

 if(条件){ //条件是 boolean 或者boolean结果的表达式,如果条件为true执行代码1,如果为false,执行代码2;
    执行代码1;
}else{
    执行代码2;
}  
 @Test
    public void TestB(){
        //2. if...else条件结构
        int a =10;
        int b =15;
        if(a>b){
            System.out.println("a的值比b的值大!");
        }else{
            System.out.println("a的值比b的值小!");
        }
    }  

3、练习

问题1:分段的条件如何实现?优、良、中、及格 ?

多重选择结构 if…else

a.why:

在实际生活中,有些场合满足一定范围条件进行相关操作,满足其他范围进行其他操作?

b.语法:

 if(条件1){
    执行代码1
}else if(条件2){
    执行代码2
}
...
else{
    最终执行代码
}  

 @Test
    public void TestC(){
        //3. if..else if if...else if  else
        //多重if结构 分区间问题
        int score = 89;  //定义某一个学生分数
        if(score>=90){
            System.out.println("成绩优秀!");
        }else if(score>=80){
            System.out.println("成绩良好!");
        }else if(score>=70){
            System.out.println("成绩良好!");
        }else if(score>=60){
            System.out.println("成绩合格!");
        }else {
            System.out.println("成绩不合格!");
        }
    }
}  

条件: 是 boolean 或者boolean结果的表达式,如果满足条件1执行代码1,满足条件N执行代码N,else中可以省略。

重点: 多重条件选择注意区间段的书写

问题2:在判定一定条件的时候,需要提前对数据进行判定处理?

4.嵌套选择结构:

a.why: 在实际生活中,我们有些判定需要放入到其他的判定内部,有着先后顺序?

b.语法:

 if(条件1){
    if(条件1.1){
    
    }else{
    
    }
}else{

}  

条件 :是boolean或者boolean结果的表达式,内容同基本选择机构一致

5、switch选择结构:

问题: 是否有其他的选择结构?如果条件特别多,并且条件不是范围而是固定值?

a.why:

在实际生活中,有些场合需要使用多重选择结构,并且多重选择结构中的条件是确定值,确定值判定有很多?

b.语法:

 switch(表达式){
    case 常量1:
        执行代码1;
        break;
    case 常量2:
        执行代码2;
        break;
    ...
    default:
        执行代码;
        break;
}  

表达式可以是byte,short,int,char,Enum(枚举),JDK1.7以前不能使用String,1.7及1.7以后可以使用String

重点: g,float,double是不能使用的表达式类型

break和default模块可以省略不写;

常量后的”:”是不允许省略的;

default模块可以放置在前方

注意执行顺序和break的结合使用的问题

重点: switch和if比较:

相同点:

都是多分支比较结构

不同点:

switch只用于等值判定条件;

if没有条件限制,但是一般用于区间判定

c.举例说明

eg:输入月份,根据月份输出该月份的天数

eg:综合例子:输入年份,月份,分别将该年月的天数输出

eg:

 public static void main(String[] args) {
    int a = 2;
    switch(a){
        case 1:
            System.out.println("周一");
            break;
        case 2:
            System.out.println("周二");
            break;
        case 3:
            System.out.println("周三");
            break;
        default:
            System.out.println("超出范围");
    }
}  

输出结果:周二

注意:switch语句也是可以支持嵌套的。

6、while循环结构

a.why: 在实际生活中,一些重复冗余的操作–如何优化?

b.语法:

 初始值int i=1;
while(条件i<=100){
    执行代码;
    迭代条件i++;
}  
  public static void main(String[] args) {
         int a = 1;          // 定义用来计数的变量
         double sum = 10000; //定义一个 存放本金的变量
         while (a <= 5) {    //计算5 年后的本金    
         sum += sum * 0.003;
         a++;
      }
  System.out.println(sum);
}  

初始值,循环条件,循环内容,迭代条件

7、debug调试:

最基本的操作是:

  1. 首先在一个java文件中设断点,然后debug as-->open debug Dialog,然后在对话框中选类后--> Run 当程序走到断点处就会转到debug视图下。
  2. F5键与F6键均为单步调试,F5是step into,也就是进入本行代码中执行,F6是step over, 也就是执行本行代码,跳到下一行,
  3. F7是跳出函数
  4. F8是执行到最后。

Step Into (also F5) 跳入

Step Over (also F6) 跳过

Step Return (also F7) 执行完当前method,然后return跳出此method

step Filter 逐步过滤 一直执行直到遇到未经过滤的位置或断点(设置Filter:window-preferences-java-Debug-step Filtering)

resume 重新开始执行debug,一直运行直到遇到breakpoint

hit count 设置执行次数 适合程序中的for循环(设置 breakpoint view-右键hit count)

inspect 检查 运算。执行一个表达式显示执行值

watch 实时地监视变量的变化

我们常说的断点(breakpoints)是指line breakpoints,除了line breakpoints,还有其他的断点类型:field(watchpoint)breakpoint,method breakpoint,exception breakpoint.

field breakpoint 也叫watchpoint(监视点) 当成员变量被读取或修改时暂挂

添加method breakpoint 进入/离开此方法时暂挂(Run-method breakpoint)

添加Exception breakpoint 捕抓到Execption时暂挂(待续…)

variables 视图里的变量可以改变变量值,在variables 视图选择变量点击右键–change value.一次来进行快速调试。

debug 过程中修改了某些code后–〉save&build–>resume–>重新暂挂于断点

断点属性:

  1. hit count 执行多少次数后暂挂 用于循环
  2. enable condition 遇到符合你输入条件(为ture改变时)就暂挂
  3. suspend thread 多线程时暂挂此线程
  4. suspend VM 暂挂虚拟机

8、do…while循环

a.why:

实际操作中,需要先执行了以后再进行判定是否需要继续?

b.语法:

初始值

 do{
    重复执行代码;
    迭代内容;
}while(循环判定条件);  
 public static void main(String[] args) {
    int i = 1;// 初始化语句
    do {
        System.out.println("我想看,复仇者联盟4");// 循环体
        i++;// 步进语句
    } while (i <= 10);// 条件判断
}  

重点: 最后的分号一定不要省略

while与do…while循环总结:

  • 相同点: 都是循环结构; 内容都是含有四个部分:初始值,循环条件,循环内容,迭代条件;
  • 区别: 语法不同; 执行顺序不同: while先判定再执行,do…while先执行再判定; 执行次数:while执行是0或多次;do…while执行是1或多次;

9、循环结构for:

a.why: 解决实际问题中重复操作

b.语法:

 for(表达式1;表达式2;表达式3){
    执行代码4;
}  

表达式1为循环参数的初始值;表达式2为循环判定(结束)条件;表达式3为循环迭代条件执行代码为需要重复的操作执行的顺序:1-2-4-3-1-2-4-3…

10、for循环变形:

a.for(){};

初始值等含有多个同时操作

b. 正常执行:

 int i=0;
for(;i<10;i++){
    执行代码
}  

初始变量放在外部,不再做一个for循环的局部变量;

c. 死循环

 for(int i=0;;i++){
    执行代码;
}  

语法没有问题,但是缺少结束条件,死循环

语法没有问题,但是缺少迭代条件,死循环;

 for(int i=0;;){}
for(;;)  
 public static void main(String[] args){
        int run = 1;
        for(;run<=5;run++){
            System.out.println("跑第: " + run + "次");
        }
        System.out.println("run: "+run);
}  

重点: for、if结构中如果只有一行指令的时候可以省略{},但是建议大家不要省略;

11.break:

在循环体中表示结束整个循环,一般同判定结合使用;

12.continue:

在循环体中表示结束当前层循环,进入下一层循环;

13.return:

结束方法体;

14.break、continue、return比较:

使用场合

break 常用于 switch 结构和循环结构中

continue 一般用于循环结构中

作用(循环结构中)

 break语句终止某个循环,程序跳转到循环块外的下一条语句
continue跳出本次循环,进入下一次循环
return:结束当前方法的执行并退出,返回到调用该方法的语句处  

15、循环总结:(while,do…while,for)

相同点:

需要多次重复执行一个或多个任务的问题考虑使用循环来解决; 无论哪一种循环结构,都有4个必不可少的部分:初始部分、循环条件、循环体、迭代部分

区别:

语法;

执行顺序:

while 循环:先判断,再执行

do-while循环:先执行,再判断

for循环:先判断,再执行

适用场合:

循环次数确定的情况,通常选用for循环

循环次数不确定的情况,通常选用while或do-while循环

知识点补充:

1、Math.random()获取随机数字

范围是 0.0 <= Math.random() < 1.0

 int randow = (int)(Math.randow()*10);  

重点:Math 的API使用

2、转义字符:

  转义符号    
n 表示在字符串中回车
t Tab效果
rn IO流需要在文本中换行,需要使用特殊处理
\ 转义字符本身  

练习题

1、有1020个西瓜,第一天卖掉总数的一半后又多卖出两个,以后每天卖剩下的一半多两个,问几天以后能卖完?

2、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃了一半,又多吃一个,以后每天都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子。求第一天共摘了多少个?

3、有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成多少对?分析:兔子的规律为数列,1,1,2,3,5,8,13,21

4、任意输入一个整数(小于10位),输出它一共有多少位。

5、计算1000以内所有不能被7整除的整数之和

6、本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是

7、计算 1+2-3+4-5+6-7…+100的结果//注意审题

8、一张纸的厚度大约是0.08mm,对折多少次之后能达到或超过珠穆朗玛峰的高度(8848.13米)

9、从控制台输入一个正整数,计算该数的阶乘。例如输入5,阶乘为 54321

10、你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数


文章转载自:即刻就业助手

文章来源:智云一二三科技

文章标题:JAVA笔记(四)——三大结构语句

文章地址:https://www.zhihuclub.com/177891.shtml

关于作者: 智云科技

热门文章

网站地图