引用类型的使用

java提供的类的使用

随机调取数:Random

double nextDouble() 生成一个随机小数 【0,1)

int nextInt(int max ) 生成一个随机整数 【0,max)

int nextInt (int max ) 1 生成一个随机整数 【1,max)

Random r = new Random(); double d = r.nextDouble(); // 生成【0,1)的随机小数 int i1 = r.nextInt(200); // 生成0——199的随机整数 int i2 = r.nextInt(200) 1; // 生成 1——200 的随机整数 int i3 = r.nextInt(900) 100;// 生成100-999的整数 System.out.println(d); System.out.println(i1); System.out.println(i2); System.out.println(i3); 结果: 0.4156196015182372 71 134 845

键盘录入:Scanner
  1. 导包,位于 java.util 包下 (格式 import 包名.类名)这行语句要写在定义类的语句之上
  2. 创建一个Scanner的对象【Scanner 变量名 = Scanner(System.in)
  3. 使用Scanner对象获取键盘录入的信息

获取int值: 对象名.nextInt();

获取小数值: 对象名.nextDouble();

获取布尔值: 对象名.next.Boolean();

获取字符串: 对象名.next.Line(); next( );

没有nextChar这个方法

4.注意事项

如果程序中除了使用nextLine以外,还使用了其他的nextInt...方法

如果nextLine方法在最后录入,就会导致该字段无法录入进去。

解决方法

① 把nextLine 放到 最上面(nextXXX 方法之上)

② 使用next

/** 阻塞式方法,nextLine的例子 */ import java.util.Scanner;//导包 public class Demo01_Scanner{ public static void main(String [] args){ Scanner sc = new Scanner (System.in);//定义变量并赋值 System.out.println("请输入您的年龄"); int age = sc.nextInt(); System.out.println("请输入您的身高"); double height = sc.nextDouble (); System.out.println("请输入您的名字"); String name = sc.next();//原来是String name = sc.nextLine,就会导致名字还没有输入就出了结果 System.out.println("你好," name ",原来你已经" age ",身高" height); } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入您想创建的名称"); String name = sc.next(); System.out.println("请输入您的年龄"); double age = sc.nextDouble(); // 这里可以输入整数,会自动类型提升 System.out.println("请输入您的账号"); int i = sc.nextInt(); System.out.println("恭喜" name "您的账号已创建成功," "年龄是" age "身高" i "," "欢迎来到这个世界莉莉"); } 结果: 请输入您想创建的名称 莉莉 请输入您的年龄 18 请输入您的账号 123 恭喜莉莉您的账号已创建成功,年龄是18.0身高123,欢迎来到这个世界

java只识别语法

java只识别语法格式是否错误,不识别变量的值

// java识别常量的true int a; if(true){ a = 10; } System.out.println(a); // a=10,true是常量 // java 识别不了变量的值 int a; boolean b = true; if(b){ a = 10; } System.out.println(a); // 会报错,可能尚未初始化a;

流程语句概述

在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。

顺序结构

public static void main(String[] args){ //顺序执行,根据编写的顺序,从上到下运行 System.out.println(1); System.out.println(2); System.out.println(3); }

判断语句if语句

概述:if的条件是一个范围或者具体的,条件输出的结果之鞥你是布尔的结果

类型

格式

含义

注意事项

单条件判断

if (条件){语句}

如果满足条件则执行语句,如果不满足则不执行

1.需要注意变量的作用域范围2.if 语句可以省略大括号

互斥条件判断

if(关系表达式) { 语句体1;}else { 语句体2;}

如果满足表达式则执行语句1,否则执行语句2

多条件判断

if (判断条件1) { 执行语句1;} else if (判断条件2) { 执行语句2;}...}else if (判断条件n) { 执行语句n;} else { 执行else语句;}

满足哪个条件就执行对应的语句,如果都不满足就执行else语句(各条件也是互斥的)

/** if语句 */ public class Demo_If { public static void main (String [] args){ int age = 18;//单条件判断 if (age>=18) System.out.println("你已经成年了");//执行语句只有一句话时,大括号可以省略 char sex = '人';//互斥条件判断 if (sex == '男') System.out.println("你是男人"); else System.out.println("不确定"); double score = 98.9;//多条件判断 if (score >= 90 && score <= 100) System.out.println("成绩优秀"); else if (score >=70 && score <90) System.out.println("成绩良好"); else if (score >= 60 && score < 70) System.out.println("成绩及格"); else System.out.println("不及格"); } }

Switch语句

Switch 选择结构,主要运用于几个值中选择一个

Switch 格式 Switch (变量){

case 值1;//有可能的情况是

语句1;

break;//中断的意思

case 值1;

语句1;

break;

。。。。。

default;//默认值的意思

默认语句;

break;

}

import java.util.Scanner; public class test_switch_01 { public static void main (String [] args) { Scanner sc = new Scanner (System.in); System.out.println("请输入数字(1 7):"); int num = sc.nextInt(); switch (num) { 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;2 case 7 ; System.out.println("星期七"); break; default: System.out.println("输入错误"); break; } } }

注意事项:

  1. switch 小括号中的数据 的数据类型,只能是byte short int char JDK1.5之后可以使用枚举,JDK1.7之后可以使用String
  2. case 只在第一次判断时生效,之后就相当于没有case了,如果不写break ,代码会自动向下执行,不再判断case,直到运行遇到break 或者大括号结束,这种情况称之为case穿透

常用的流程控制语句(学员笔记连载第3天)(1)

循环语句For 循环
  1. 循环:就是一段代码反复执行
  2. 循环的四个要素
  1. for循环格式

for (初始化表达式1;布尔表达式2;步进表达式3){循环体4}

就是以124 324 324........一直到2不满足条件才结束循环

public class Demo_For{ public static void main (String [] args) { for (int = 1;i <= 10;i = 1){ System.out.println("hello world" i); } } }

  1. for循环注意事项,1234均可以为空

for (int i = 0; i < 5; i ) { System.out.println("你好 java" i); } System.out.println("-------------------"); // 练习1:打印1-100之间的所有偶数,余数为0 for (int i = 1; i <= 100; i ) { if(i % 2 == 0) System.out.println(i); } System.out.println("-----------------"); // 练习2:求1-100所有数的和 int sum = 0; for (int i = 0; i <= 100; i ) { sum =i; } System.out.println(sum); // 5050 System.out.println("-----------------------"); // 练习3:求100-999的所有奇数的和 int sum1 = 0; for (int j = 100; j < 1000; j ) { if(j % 2 == 1) sum1 = j; } System.out.println(sum1); // 247500

While 循环
  1. while循环格式

初始化表达式1;

while (布尔表达式2){

循环体4;

步进表达式3

}

PS:就是以1 243 243 243.。。。。一直到2不满足条件才结束循环

  1. 不明确循环几次一般使用while循环

public class DemoWhile{ public static void main (String [] args){ //打印100内的整数 int i = 1; while (i <= 100){ System.out.println(i); i ; } } } //随机数,直到50跳出循环 import java.util.Random; public class DemoWhile{ public static void main (String [] args){ Random r = new Random(); int num = 0; while ((num = r.nextInt(100)) = 50){ System.out.println (num); } } }

  1. 注意事项:

注意初始化表达式的作用域范围

布尔表达式为true,就是一个死循环

Do While 循环
  1. 格式

初始化表达式1;

do{

循环体2;

步进表达式3;

}while(布尔表达式4);

1 234 234 234.。。。。。 一直到4不满足为止

do while 循环,无论是否满足条件 都必须先执行一次

//打印10次hello world public class DemoDowhile{ public static void main(String [] args){ int i = 1; do { System.out.println("hello world" i); i ; }while (i <=10); } } //一般也不用dowhile 得知道

break和continue

关键字-break:只能在循环或者是switch 语句中使用,表示的是完全中断不再运行

不能跨级跳出

关键字-continue:只能在循环内部使用,不完全中断,结束当前循环,继续下一次循环

// break 完全中断 for (int i = 0; i < 5; i ) { if(i==2) break; System.out.println(i); // 0,1;到2就跳出循环了 } // continue 不完全中断 for (int j = 0; j < 5; j ) { if(j==2) continue; System.out.println(j); // 只有2不打印,打印0,1,3,4 }

标记语句跳出

import java.util.Scanner; public class test_switch_01 { public static void main (String [] args) { Scanner sc = new Scanner (System.in); System.out.println("请输入数字(1 7):"); int num = sc.nextInt(); abc://意思就是把switch标记为abc switch (num) { case 1 ; System.out.println("星期一"); break; case 2 ; System.out.println("星期二"); break abc;意思就是从这里跳出去到abc case 3 ; System.out.println("星期三"); break; case 4 ; System.out.println("星期四"); break; case 5 ; System.out.println("星期五"); break; case 6 ; System.out.println("星期六"); break;2 case 7 ; System.out.println("星期七"); break; default: System.out.println("输入错误"); break; } } }

练习-Scanner if

常用的流程控制语句(学员笔记连载第3天)(2)

public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入1-7任意一个整数"); int num = sc.nextInt(); if(num == 1) System.out.println("星期一("); else if(num == 2) System.out.println("星期二"); else if(num == 3) System.out.println("星期三"); else if(num == 4) System.out.println("星期四"); else if(num == 5) System.out.println("星期五"); else if(num == 6) System.out.println("星期六"); else if(num == 7) System.out.println("星期日"); else System.out.println("输入的数字不再范围内"); }

练习-Scanner-switch

常用的流程控制语句(学员笔记连载第3天)(3)

public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入月份(1-12)"); int num = sc.nextInt(); switch (num){ case 1: case 2: case 12: System.out.println("是冬季"); break; case 3: case 4: case 5: System.out.println("是春季"); break; case 6: case 7: case 8: System.out.println("是夏季"); break; case 9: case 10: case 11: System.out.println("是秋季"); break; default: System.out.println("你输入的数字不在范围内,请重新输入"); break; }

练习-循环嵌套-九九乘法表

外循环控制行数,内循环控制列数

// 1.打印一个三行三列的矩形 for (int i = 0; i < 3; i ) { for (int j = 0; j < 3; j ) { System.out.print("*"); // 注意这里不能换行 } System.out.println(); } System.out.println("-----------------"); // 2.打印一个四行的直角三角形 for (int a = 0; a < 4; a ) { for (int b = 0; b <= a; b ) { System.out.print("*"); } System.out.println(); } System.out.println("---------");

常用的流程控制语句(学员笔记连载第3天)(4)

// 3.打印九九乘法表,打印的时候,先打印内循环的,再外循环的 for (int c = 1; c <= 9; c ) { for (int d = 1; d <= c; d ) { System.out.print(d "*" c "=" d*c "\t"); } System.out.println(); }

常用的流程控制语句(学员笔记连载第3天)(5)

练习-综合练习

常用的流程控制语句(学员笔记连载第3天)(6)

只有五次猜题的机会

public class Test2 { public static void main(String[] args) { Random r = new Random(); int gussNum = r.nextInt(100) 1; Scanner sc = new Scanner(System.in); for (int i = 4; i >= 0; i--) { System.out.println("请输入一个1-100的任意整数,注意您只有5次猜对的机会"); int putNum = sc.nextInt(); if(putNum>gussNum) System.out.println("sorry,您猜大了"); else if(putNum<gussNum) System.out.println("sorry,您猜小了"); else System.out.println("恭喜您,答对了"); System.out.println("请注意您剩余的机会还有:" i "很遗憾"); } } }

,