2022-07-14 第二组 卢睿 学习心得
作者:互联网
java
今日学习心得:
今天主要学习了java判断里的if,switch,循环里的for循环以及增强for循环,还有一维数组,二维数组等,感觉没点基础真不好跟上,对增强for循环有了新的理解,
重点
if
if...else
switch...case
for循环,foreach 顺口溜:外部循环走一步,内部循环走一圈
数组:一维数组,二维数组
用循环遍历数组
引用数据类型
String是java开发工具包里自带的
java中的字符串只能用双引号
没有范围
除了基本数据类型,都是引用数据类型
包实际上就是文件夹
包的命名规则:
- 尽量使用全小写字母
- 包名尽量不要出现 _ $ 数字
- 一般情况下,使用站点名的逆序 www.baidu.com ---> 包名com.baidu
com.baidu.模块名;combaidu.架构名;根据实际情况com.baidu.模块.架构.功能.xxxx
键盘输入
public class Ch02 {
public static void main(String[] args) {
// 构建一个工具,键盘输入
Scanner in = new Scanner(System.in);
//开始输入
String str = in.next();
System.out.println("你输入了" + str);
}
}
小练习
我自己的版本
package com.morning;
import java.util.Scanner;
public class Ch03 {
public static void main(String[] args) {
//流程控制
/*
*请输入第一个整数:
* xxxxx
* 请输入第二个整数:
* xxxxxx
* 如果第一个数是8,第二个数是9,就打印两个数的和
* 如果其中有一个是8,有一个是9,就打印两个数的差
* 如果两个数中既没有8也没有9,就分别打印两个数
*/
Scanner in = new Scanner(System.in);
System.out.println("请输入a:");
int a = in.nextInt();
System.out.println("请输入b:");
int b = in.nextInt();
if (a == 8 && b == 9){
System.out.println(a+b);
}else if(a == 8 || a == 9 && b == 8 || b == 9){
System.out.println(a-b);
}else{
System.out.println("a=" + a +";" + "b=" + b);
}
}
}
老师的版本,和我的有些区别
package com.morning;
import java.util.Scanner;
public class Ch03 {
public static void main(String[] args) {
while(true){
Scanner in = new Scanner(System.in);
System.out.println("请输入第一个数:");
int num1 = in.nextInt();
System.out.println("请输入第二个数:");
int num2 = in.nextInt();
if (num1 == 8 && num2 == 9){
System.out.println(num1 + "+" + num2 + "=" + (num1+num2));
}else if(num1 == 8 || num1 == 9 || num2 == 8 || num2 == 9){
System.out.println(num1 + "-" + num2 + "=" + (num1-num2));
}else if (num1 != 8 && num1 != 9 && num2 != 8 && num2 != 9){
System.out.println("两个数分别为:" + num1 + "," + num2);
}
}
}
}
多重if
每个if之间没有联系,这些if有可能都执行
if...else if
else是互斥,一套结构中至多走一次
在写if...else if的时候,要注意条件的顺序
如果情况比较多,条件判断比较复杂,最后一种情况不建议写else
最后面必须有200%的把握,可以写else,否则还是写else if
java中的switch
只能判断如下数据类型:
整型:int,short,byte
字符型:char
String:必须在jdk7以后的版本,包括7
枚举:要就JDk5以后的版本,包括5
switch结构清晰,简明扼要
不要强行用switch
break的作用
default的位置是灵活的,别乱放
小练习
package com.morning;
import java.util.Scanner;
public class Ch04 {
public static void main(String[] args) {
/*
*成绩管理系统
* 键盘键入成绩
* 如果成绩是60分,及格
* 如果成绩是85分,奖励你一台iPad
* 如果成绩是100分,奖励你一台十三香promax
* 其他情况,没有奖励
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的成绩:");
int cj = sc.nextInt();
switch (cj){
case 65:
System.out.println("及格");
break;
case 85:
System.out.println("奖励你一台iPad");
break;
case 100:
System.out.println("奖励你一台十三香promax");
break;
default:
System.out.println("没有奖励");
}
}
}
数组
数组一旦声明,必须指定长度
访问数组元素通过下标(索引)从0开始
数组的长度是属性,不是方法
声明方式
int [] a1 = {1,2,3,4,5}; //(不建议写这一种)
int [] a2 = new int[5];
int [] a3 = new int[]{1,2,3,4,5};
数据类型的初始值
byte,short,int,long的初始值是0
double,float的初始值是0.0
char:\u0000 --> " "
boolean: false
String: null
int []: null
二维数组
int [][] a2 = new int[5][];
开发中最多用到二维
当程序出现异常时,出现异常的后面的代码不会运行
循环
for循环
初始化条件(实际上可以是任意类型,只不过大部分我们使用的是int)
判断条件
循环体
循环条件
package com.afternoon;
public class Ch01 {
public static void main(String[] args) {
for (int i = 0;i < 10;i++){
System.out.println("i=" + i);
}
}
}
debug
打断点,可以一步步往下走
break
跳出循环
continue
终止当前次循环,开启下一次循环
循环的标签
goto功能或goto语法
foreach
增强for循环
使用for循环遍历数组
把数组中的元素通过:镜像给i
我们操作的不是原始数据,我们操作的是镜像数据
foreach的操作更加安全,不影响原始数据
foreach是JDK5以后才有的
案例
案例1 小型计算机器
package com.afternoon;
import java.util.Scanner;
public class Calculate {
public static void main(String[] args) {
/*
从键盘输入两个数字和一个符号
实现加减乘除
打印输出结果
注意:
1.除数不能为0
2.符号输入不对怎么办
3.计算器能不能一直算下去
*/
Scanner sc = new Scanner(System.in);
n4:for (;;){
System.out.println("请输入第一个数:");
double num1 = sc.nextDouble();
n2:for (;;){
System.out.println("请输入第二个数:");
double num2 = sc.nextDouble();
n3:for (;;){
System.out.println("请输入运算符号:+-*/");
String sep = sc.next();
switch (sep){
case "+":
System.out.println(num1 + sep + num2 + "=" + (num1+num2));
break;
case "-":
System.out.println(num1 + sep + num2 + "=" + (num1-num2));
break;
case "*":
System.out.println(num1 + sep + num2 + "=" + (num1*num2));
break;
case "/":
if (num2 == 0){
System.out.println("除数不能为0");
continue n2;
}else{
System.out.println(num1 + sep + num2 + "=" + (num1/num2));
}
break;
default:
System.out.println("符号输入不对,请重新输入");
continue n3;
}
n5:for (;;){
System.out.println("继续请输入1,结束请输入2");
String flag = sc.next();
switch (flag){
case "1":
continue n4;
//继续计算
case "2":
//退出计算
System.out.println("计算器即将退出,谢谢使用");
break n4;
default:
continue n5;
}
}
}
}
}
}
}
案例2 猜数字
package com.afternoon;
import java.util.Scanner;
public class Guess {
public static void main(String[] args) {
/*
猜数字小游戏
键盘输入一个用一个变量存起来
猜一猜输入的是什么
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数:");
int a = sc.nextInt();
System.out.println("数字保存成功,请猜猜数字是几");
for (;;){
System.out.println("请输入数字");
int b = sc.nextInt();
if (b>a){
System.out.println("大了");
continue;
}else if (b<a){
System.out.println("小了");
continue;
}else if (b == a){
System.out.println("猜对了");
break;
}
}
}
}
终止程序的方法
安全退出:System.out(0);
强制退出:System.out(-1);
二维数组的遍历
普通for循环
package com.afternoon;
public class Ch07 {
public static void main(String[] args) {
int [][]arr = new int[2][];
arr[0] = new int []{1,2,3,4};
arr[1] = new int []{-1,-2,-3,-4,-5};
for (int i = 0;i < arr.length;i++){
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]+",");
}
System.out.println();
}
}
}
增强for循环
package com.afternoon;
public class Ch07 {
public static void main(String[] args) {
int [][]arr = new int[2][];
arr[0] = new int []{1,2,3,4};
arr[1] = new int []{-1,-2,-3,-4,-5};
for (int[] ints : arr){
for (int anInt : ints){
System.out.print(anInt+",");
}
System.out.println();
}
}
}
for循环顺口溜:外层循环走一步,内层循环走一圈
标签:num1,07,num2,int,System,2022,14,println,out 来源: https://www.cnblogs.com/lurui711/p/16480052.html