Java基础语法-零基础教学2

三目表达式:

“三目条件表达式”,语法格式:

  • x ? y : z

其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个三目运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。

举例:

  • int score = 80; int x = -100;
  • String type = score < 60 ? "不及格" : "及格";
  • int flag = x > 0 ? 1 : (x == 0 ? 0 : -1);
  • System.out.println("type= " + type);
  • System.out.println("flag= "+ flag);

结果:

  • type= 及格 flag= -1

控制语句:

条件语句 - 根据不同条件,执行不同语句。

  • if
  • if .. else
  • if .. else if
  • if .. else if .. else if .. else
  • switch

循环语句 – 重复执行某些动作

  • for (JDK1.5语法)
  • while
  • do .. while;

分支语句IF

  • if
  • if .. else ..
  • if .. else if ..
  • if .. else if .. else if ..
  • if .. else if .. else if .. else
  • 只有一句需要执行的语句时,可以省略 { },但是不推荐省略
  • 小心不要在if后面加 ;

分支语句switch

  • switch() {     
    • case xx :         ….     
    • case xx :             ….     
    • default:         ….
  • }
  • 小心case穿透,推荐使用break语句 多个case可以合并到一起
  • default可以省略,但不推荐省略
  • Switch的值类型是:byte    short    int    String     枚举    char

需求练习:

  • 做练习:
  • 电脑输入自己的:名字,性别,出生年,身高,体重。
  • 返回电脑自动返回:
  • 库里 男 1988年出生,今年27 身高:191.1cm 体重:83.9kg
  • 您的体重完整正常or偏重注意瘦身or注意加强营养。
  • 男性:身高(厘米)-105= 标准体重(千克),
  • 女性:身高(厘米)-100= 标准体重(千克)

While循环 & do while 循环

  • while 语句为如下形式:
  • while(逻辑表达式){ 语句; … ; }
  • 执行过程: 先判断逻辑表达式的值。
  • 若=true.则执行其后面的语句,然后再次判断条件并反复执行,直到条件不成立为止

示意图:

do while

  • do while 语句为如下形式:
  • do { 语句; … ; } while(逻辑表达式);
  • 执行过程:先执行语句,再判断逻辑表达式的值,若为true,再执行语句,否则结束循环。

示意图

for 循环语句

  • for 语句为如下形式:
  • for(表达式1; 表达式2; 表达式3){ 语句; … ; }
  • 执行过程 首先计算表达式1,接着执行表达式2,若表达式2的值 = ture,则执行语句,接着计算表达式3,再判断表达式2的值;
  • 依此重复下去,直到表达式2的值=false
  • for语句中三个表达式都可以省略 JDK1.5新补充的for语法(后面课程中补充,数组)

练习:

课 堂 练 习 编写程序,用一个 for 循环计算1+3+5+7 + ……+ 99的值,并输出计算结果。(OddSum.java)


/**
* 100以内的奇数和
*/
public class OddSum{

	public static void main(String[] args){
		int sum = 0;
		//for循环
		for(int i=1;i<=100;i+=2){
			System.out.println("当前的数字是:"+i);
			sum +=i;
		}
		System.out.println("总和是:"+sum);
	}
}

break & Continue 语句

break 语句用于终止某个语句块的执行。用在循环语句体中,可以强行退出循环;例如:

public class Test {
  public static void main(String args[]) {
    int stop = 4;
    for (int i = 1; i <= 10; i++) {
       //当i等于stop时,退出循环
       if (i == stop) break;
       System.out.println(" i= " + i);
    }
  }
}

continue 语句用在循环语句体中,用于终止某次循环过程,跳过循环体中 continue 语句下面未执行的循环,开始下一次循环过程;例如:

public class Test {
  public static void main(String args[]) {
    int skip = 4;
    for (int i = 1; i <= 5; i++) {
       //当i等于skip时,跳过当次循环
       if (i == skip) continue;
       System.out.println("i = " + i);
    }
  }
}

 

循环代码练习:

  1. 输出1~100内前5个可以被3整除的数。
// 输出1~100内前5个可以被3整除的数。
public class Test {
  public static void main(String args[]){
    int num = 0, i = 1;
    while (i <= 100) {
        if (i % 3 == 0) {
            System.out.print(i + " ");
            num++;
        }
        if (num == 5) {
            break;
        }
        i++;
    }
  }
}
  1. 输出101~200内的质数,

//输出101~200内的质数,
public class Test {
  public static void main(String args[]) {
    for (int i=101; i<200; i+=2) {
        boolean f = true;
        for (int j = 2; j < i; j++) {
            if (i % j == 0) {
                f = false; 
                break;
            }
        }
        if (!f) {continue;}
        System.out.print(" " + i);
    }
  }
}

初步了解:Java中的方法

  • Java的方法类似于其它语言的函数,是一段用来完成特定功能的代码片段,声明格式:  
  • [修饰符1  修饰符2  …] 返回值类型 方法名(形式参数列表){
  •     Java语句;… … …  
  • }                        
  • 形式参数:在方法被调用时用于接收外界输入的数据。
  • 实参:调用方法时实际传给方法的数据。
  • 返回值:方法在执行完毕后返还给调用它的环境的数据。
  • 返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void。
  • Java语言中使用下述形式调用方法:对象名.方法名(实参列表)
  • 实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配,
  • return  语句终止方法的运行并指定要返回的数据。
  • Java中进行方法调用中传递参数时,遵循值传递的原则:
  • 基本类型传递的是该数据值本身。引用类型传递的是对对象的引用,而不是对象本身 。

递归调用

递归简单来说呢就是:方法自身调用自身

代码案例:

打印99乘法表

源码,补码,反码

  • 概念:java中用补码表示二进制数,补码的最高位是符号位,最高位为“0”表示正数,最高位为“1”表示负数。
  • 正数补码为其本身;
  • 负数补码为其绝对值各位取反加1;
  • 例如:
  • +21,其二进制表示形式是00010101,则其补码同样为00010101
  • -21,按照概念其绝对值为00010101,各位取反为11101010,再加1为11101011,即-21的二进制表示形式为11101011

补充内容

步骤:

  1. byte为一字节8位,最高位是符号位,即最大值是01111111,因正数的补码是其本身,即此正数为01111111 十进制表示形式为127
  2. 最大正数是01111111,那么最小负是10000000(最大的负数是11111111,即-1)
  3. 10000000是最小负数的补码表示形式,我们把补码计算步骤倒过来就即可。10000000减1得01111111然后取反10000000 因为负数的补码是其绝对值取反,即10000000为最小负数的绝对值,而10000000的十进制表示是128,所以最小负数是-128
  4. 由此可以得出byte的取值范围是-128到+127
  5. 说明:各个类型取值范围的计算方法与此大致相同,感兴趣的同学可以自己试着计算

补充内容

  1. 补充(给非计算机专业的同学扫下盲):
  2. 在计算机内,定点数有3种表示法:原码、反码和补码
  3. [原码]就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
  4. [反码]表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
  5. [补码]表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章