JAVA基础语法

  • 关键字与标识符
    • 一.关键字(KeyWord)
    • 二..标识符(Identifiter)
  • 变量
  • 进制
  • 运算符
    • 1.算术运算符:
    • 2.赋值运算符
    • 3.比较运算符
    • 4.逻辑运算符
    • 5.位运算符 (了解)
    • 6.三元运算符
  • 流程控制
    • 一.分支结构
    • 二.循环结构
    • 三.break和continue关键字的使用
    • 四.Scanner类

关键字与标识符

一.关键字(KeyWord)

1.定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
2.特点:关键字中所字母都为小写
具体哪些关键字:


3…保留字:现Java版本尚未使用,但以后版本可能会作为关键字使用。

保留字:goto 、const

注意:自己命名标识符时要避免使用这些保留字

二…标识符(Identifiter)

定义:凡是自己可以起名字的地方都叫标识符。
涉及到的结构:
包名、类名、接口名、变量名、方法名、常量名
标识符的使用

1.标识符:凡是自己可以起名字的地方都叫标识符。 比如:类名、变量名、方法名、接口名、包名…
2.标识符的命名规则:(如果不遵守如下的规则,编译不通过!需要大家严格遵守)
①由26个英文字母大小写,0-9 ,_或 $ 组成 。
②数字不可以开头。
③不可以使用关键字和保留字,但能包含关键字和保留字。
④Java中严格区分大小写,长度无限制。
⑤标识符不能包含空格。
3. Java中的名称命名规范: (如果不遵守如下的规范,编译可以通过!建议大家遵守)
①包名:多单词组成时所有字母都小写:xxxyyyzzz 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
②变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
③常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
4. 注意1:在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。 注意2:java采用unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用。

class IdentifierTest{public static void main(String[] args){//int myNumber = 1001;//System.out.println(myNumber);int mynumber = 1002;System.out.println(mynumber);//int 学号 = 1003;//System.out.println(学号);}
}class Hello1_${}
class staticpublic{}
class Static{}
class User{}
class Account{}

变量

1.变量的使用

变量的使用

  1. java定义变量的格式:数据类型 变量名 = 变量值;

  2. 说明:
    ① 变量必须先声明,后使用
    ② 变量都定义在其作用域内。在作用域内,它是有效的。换句话说,出了作用域,就失效了
    ③ 同一个作用域内,不可以声明两个同名的变量


class VariableTest {public static void main(String[] args) {//变量的定义int myAge = 12;//变量的使用System.out.println(myAge);//编译错误:使用myNumber之前并未定义过myNumber//System.out.println(myNumber);//变量的声明int myNumber;//编译错误:使用myNumber之前并未赋值过myNumber//System.out.println(myNumber);//变量的赋值myNumber = 1001;//编译不通过//System.out.println(myClass);//不可以在同一个作用域内定义同名的变量//int myAge = 22;}public void method(){int myClass = 1;}
}//class VariableTest {}//逆向思维,反证法

2.变量的分类

Java定义的数据类型
一、变量按照数据类型来分:
①基本数据类型: 整型:byte \ short \ int \ long 浮点型:float \ double
字符型:char 布尔型:boolean
②引用数据类型: 类(class) 接口(interface) 数组(array)
二、变量在类中声明的位置: 成员变量 vs 局部变量


class VariableTest1 {public static void main(String[] args) {//1. 整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节)//① byte范围:-128 ~ 127//byte b1 = 12;byte b2 = -128;//b2 = 128;//编译不通过System.out.println(b1);System.out.println(b2);// ② 声明long型变量,必须以"l"或"L"结尾// ③ 通常,定义整型变量时,使用int型。short s1 = 128;int i1 = 1234;long l1 = 3414234324L;System.out.println(l1);//2. 浮点型:float(4字节) \ double(8字节)//① 浮点型,表示带小数点的数值//② float表示数值的范围比long还大double d1 = 123.3;System.out.println(d1 + 1);//③ 定义float类型变量时,变量要以"f"或"F"结尾float f1 = 12.3F;System.out.println(f1);//④ 通常,定义浮点型变量时,使用double型。//3. 字符型:char (1字符=2字节)//① 定义char型变量,通常使用一对'',内部只能写一个字符char c1 = 'a';//编译不通过//c1 = 'AB';System.out.println(c1);char c2 = '1';char c3 = '中';char c4 = 'ス';System.out.println(c2);System.out.println(c3);System.out.println(c4);//② 表示方式:1.声明一个字符 2.转义字符 3.直接使用 Unicode 值来表示字符型常量char c5 = '\n';//换行符c5 = '\t';//制表符System.out.print("hello" + c5);System.out.println("world");char c6 = '\u0043';System.out.println(c6);//4.布尔型:boolean//① 只能取两个值之一:true 、 false//② 常常在条件判断、循环结构中使用boolean bb1 = true;System.out.println(bb1);boolean isMarried = true;if(isMarried){System.out.println("你就不能参加\"单身\"party了!\\n很遗憾");}else{System.out.println("你可以多谈谈女朋友!");}}
}

注:转义字符

了解编码:

ASCII ((American Standard Code for Information Interchange):
美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符

统一码(Unicode),也叫万国码、单一码,是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式发布1.0版本,2021年9月14日发布14.0版本。

UTF-8(8位元,Universal Character Set/Unicode Transformation
Format)是针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行少部分修改后,便可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。

3.基本数据类型变量间运算规则

基本数据类型之间的运算规则:

前提:这里讨论只是7种基本数据类型变量间的运算。不包含boolean类型的。

  1. 自动类型提升:
    结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。 byte 、char 、short --> int --> long --> float --> double
    特别的:当byte、char、short三种类型的变量做运算时,结果为int型

  2. 强制类型转换:见VariableTest3.java
    说明:此时的容量大小指的是,表示数的范围的大和小。比如:float容量要大于long的容量


class VariableTest2 {public static void main(String[] args) {byte b1 = 2;int i1 = 129;//编译不通过//byte b2 = b1 + i1;int i2 = b1 + i1;long l1 = b1 + i1;System.out.println(i2);float f = b1 + i1;System.out.println(f);short s1 = 123;double d1 = s1;System.out.println(d1);//123.0//***************特别地*********************char c1 = 'a';//97int i3 = 10;int i4 = c1 + i3;System.out.println(i4);short s2 = 10;//char c2  = c1 + s2;//编译不通过byte b2 = 10;//char c3 = c1 + b2;//编译不通过//short s3 = b2 + s2;//编译不通过//short s4 = b1 + b2;//编译不通过//****************************************}
}

强制类型转换:自动类型提升运算的逆运算。
1.需要使用强转符:()
2.注意点:强制类型转换,可能导致精度损失。

class VariableTest3 {public static void main(String[] args) {double d1 = 12.9;//精度损失举例1int i1 = (int)d1;//截断操作System.out.println(i1);//没有精度损失long l1 = 123;short s2 = (short)l1;//精度损失举例2int i2 = 128;byte b = (byte)i2;System.out.println(b);//-128}
}

补充①:

class VariableTest4 {public static void main(String[] args) {//1.编码情况1:long l = 123213;System.out.println(l);//编译失败:过大的整数,默认以int类型存储的//long l1 = 21332423235234123;long l1 = 21332423235234123L;//****************//编译失败//float f1 = 12.3;float f1 = (float)12.3;//2.编码情况2://整型常量,默认类型为int型//浮点型常量,默认类型为double型byte b = 12;//byte b1 = b + 1;//编译失败,原因整型常量,默认类型为int型,转不成byte//float f1 = b + 12.3;//编译失败}
}

补充②:
引用数据类型

String类型变量的使用

  1. String属于引用数据类型,翻译为:字符串
  2. 声明String类型变量时,使用一对""
  3. String可以和8种基本数据类型变量做运算,且运算只能是连接运算:+
  4. 运算的结果仍然是String类型
class StringTest {public static void main(String[] args) {String s1 = "Hello World!";System.out.println(s1);String s2 = "a";String s3 = "";//char c = '';//编译不通过//***********************int number = 1001;String numberStr = "学号:";String info = numberStr + number;// +:连接运算boolean b1 = true;String info1 = info + b1;// +:连接运算System.out.println(info1);//infotrue//***********************//练习1char c = 'a';//97   A:65int num = 10;String str = "hello";System.out.println(c + num + str);//107helloSystem.out.println(c + str + num);//ahello10System.out.println(c + (num + str));//a10helloSystem.out.println((c + num) + str);//107helloSystem.out.println(str + num + c);//hello10a//练习2//打印 :*   *System.out.println("* *");//*    *System.out.println('*' + '\t' + '*');//93System.out.println('*' + "\t" + '*');//*  *System.out.println('*' + '\t' + "*");//51System.out.println('*' + ('\t' + "*"));//*    *//单引号解析出来是对应的ascll码值//***********************//String str1 = 123;//编译不通过String str1 = 123 + "";System.out.println(str1);//"123"//int num1 = str1;//int num1 = (int)str1;//"123"int num1 = Integer.parseInt(str1);System.out.println(num1);//123}
}

进制

1.计算机中不同进制的使用说明

对于整数,有四种表示方式:

二进制(binary):0,1 ,满2进1.以0b或0B开头。
十进制(decimal):0-9 ,满10进1。
八进制(octal):0-7 ,满8进1. 以数字0开头表示。
十六进制(hex):0-9及A-F,满16进1. 以0x或0X开头表示。此处的A-F不区分大小写。
如:0x21AF +1= 0X21B0

class BinaryTest {public static void main(String[] args) {int num1 = 0b110;int num2 = 110;int num3 = 0127;int num4 = 0x110A;System.out.println("num1 = " + num1);System.out.println("num2 = " + num2);System.out.println("num3 = " + num3);System.out.println("num4 = " + num4);}
}

2.二进制的使用说明:
2.1 计算机底层的存储方式:所有数字在计算机底层都以二进制形式存在。
2.2 二进制数据的存储方式:所有的数值,不管正负,底层都以补码的方式存储。
2.3 原码、反码、补码的说明:
正数:三码合一

原码:直接将一个数值转换成二进制数,最高位是符号位
负数的反码:对原码取反,最高位(符号位)确定为1
负数的补码:反码加1

进制转换(通过二进制转八进制、十六进制)

运算符

1.算术运算符:

 + - * / % (前)++ (后)++ (前)-- (后)--
class AriTest {public static void main(String[] args) {//除号:/int num1 = 12;int num2 = 5;int result1 = num1 / num2;System.out.println(result1);//2int result2 = num1 / num2 * num2;System.out.println(result2);//10double result3 = num1 / num2;System.out.println(result3);//2.0double result4 = num1 / num2 + 0.0;//2.0double result5 = num1 / (num2 + 0.0);//2.4double result6 = (double)num1 / num2;//2.4double result7 = (double)(num1 / num2);//2.0System.out.println(result5);System.out.println(result6);// %:取余运算//结果的符号与被模数的符号相同//开发中,经常使用%来判断能否被除尽的情况。int m1 = 12;int n1 = 5;System.out.println("m1 % n1 = " + m1 % n1);int m2 = -12;int n2 = 5;System.out.println("m2 % n2 = " + m2 % n2);int m3 = 12;int n3 = -5;System.out.println("m3 % n3 = " + m3 % n3);int m4 = -12;int n4 = -5;System.out.println("m4 % n4 = " + m4 % n4);//(前)++ :先自增1,后运算//(后)++ :先运算,后自增1int a1 = 10;int b1 = ++a1;System.out.println("a1 = " + a1 + ",b1 = " + b1);int a2 = 10;int b2 = a2++;System.out.println("a2 = " + a2 + ",b2 = " + b2);int a3 = 10;++a3;//a3++;int b3 = a3;//注意点:short s1 = 10;//s1 = s1 + 1;//编译失败//s1 = (short)(s1 + 1);//正确的s1++;//自增1不会改变本身变量的数据类型System.out.println(s1);//问题:byte bb1 =127;bb1++;System.out.println("bb1 = " + bb1);//(前)-- :先自减1,后运算//(后)-- :先运算,后自减1int a4 = 10;int b4 = a4--;//int b4 = --a4;System.out.println("a4 = " + a4 + ",b4 = " + b4);}
}

【特别说明的】

1.(前)++ :先自增1,后运算 ; (后)++ :先运算,后自增1
2.(前)-- :先自减1,后运算 ;(后)-- :先运算,后自减1
3.连接符:+:只能使用在String与其他数据类型变量之间使用。

2.赋值运算符

= += -= *= /= %=

class SetValueTest {public static void main(String[] args) {//赋值符号:=int i1 = 10;int j1 = 10;int i2,j2;//连续赋值i2 = j2 = 10;int i3 = 10,j3 = 20;//*********************int num1 = 10;num1 += 2;//num1 = num1 + 2;System.out.println(num1);//12int num2 = 12;num2 %= 5;//num2 = num2 % 5;System.out.println(num2);short s1 = 10;//s1 = s1 + 2;//编译失败s1 += 2;//结论:不会改变变量本身的数据类型System.out.println(s1);//开发中,如果希望变量实现+2的操作,有几种方法?(前提:int num = 10;)//方式一:num = num + 2;//方式二:num += 2; (推荐)//开发中,如果希望变量实现+1的操作,有几种方法?(前提:int num = 10;)//方式一:num = num + 1;//方式二:num += 1; //方式三:num++; (推荐)//练习1int i = 1;i *= 0.1;System.out.println(i);//0i++;System.out.println(i);//1//练习2int m = 2;int n = 3;n *= m++; //n = n * m++; System.out.println("m=" + m);//3System.out.println("n=" + n);//6//练习3int n1 = 10;n1 += (n1++) + (++n1);//n1 = n1 + (n1++) + (++n1);System.out.println(n1);//32}
}

3.比较运算符

== != > < >= <= instanceof

结论:
1.比较运算符的结果是boolean类型
2.区分 == 和 =

class CompareTest {public static void main(String[] args) {int i = 10;int j = 20;System.out.println(i == j);//falseSystem.out.println(i = j);//20boolean b1 = true;boolean b2 = false;System.out.println(b2 == b1);//falseSystem.out.println(b2 = b1);//true}
}

/*

4.逻辑运算符

& && | || ! ^

说明:
1.逻辑运算符操作的都是boolean类型的变量

class LogicTest {public static void main(String[] args) {//区分& 与 &&//相同点1:& 与  && 的运算结果相同//相同点2:当符号左边是true时,二者都会执行符号右边的运算//不同点:当符号左边是false时,&继续执行符号右边的运算。&&不再执行符号右边的运算。//开发中,推荐使用&&boolean b1 = true;b1 = false;int num1 = 10;if(b1 & (num1++ > 0)){System.out.println("我现在在北京");}else{System.out.println("我现在在南京");}System.out.println("num1 = " + num1);boolean b2 = true;b2 = false;int num2 = 10;if(b2 && (num2++ > 0)){System.out.println("我现在在北京");}else{System.out.println("我现在在南京");}System.out.println("num2 = " + num2);// 区分:| 与 || //相同点1:| 与  || 的运算结果相同//相同点2:当符号左边是false时,二者都会执行符号右边的运算//不同点3:当符号左边是true时,|继续执行符号右边的运算,而||不再执行符号右边的运算//开发中,推荐使用||boolean b3 = false;b3 = true;int num3 = 10;if(b3 | (num3++ > 0)){System.out.println("我现在在北京");}else{System.out.println("我现在在南京");}System.out.println("num3 = " + num3);boolean b4 = false;b4 = true;int num4 = 10;if(b4 || (num4++ > 0)){System.out.println("我现在在北京");}else{System.out.println("我现在在南京");}System.out.println("num4 = " + num4);}
}

5.位运算符 (了解)

<< >>

结论:

  1. 位运算符操作的都是整型的数据
  2. 在一定范围内,每向左移1位,相当于 * 2;:在一定范围内,每向右移1位,相当于 / 2

class BitTest {public static void main(String[] args) {int i = 21;i = -21;System.out.println("i << 2 :" + (i << 2));System.out.println("i << 3 :" + (i << 3));System.out.println("i << 27 :" + (i << 27));int m = 12;int n = 5;//注意:使用二进制进行计算System.out.println("m & n :" + (m & n));//4System.out.println("m | n :" + (m | n));//13System.out.println("m ^ n :" + (m ^ n));//9//练习:交换两个变量的值int num1 = 10;int num2 = 20;System.out.println("num1 = " + num1 + ",num2 = " + num2);//方式一:定义临时变量的方式//推荐的方式int temp = num1;num1 = num2;num2 = temp;//方式二:好处:不用定义临时变量  //弊端:① 相加操作可能超出存储范围 ② 有局限性:只能适用于数值类型//num1 = num1 + num2;//num2 = num1 - num2;//num1 = num1 - num2;//方式三:使用位运算符//有局限性:只能适用于数值类型//num1 = num1 ^ num2;//num2 = num1 ^ num2;//num1 = num1 ^ num2;System.out.println("num1 = " + num1 + ",num2 = " + num2);}
}

面试题:最高效方式的计算2 * 8 ? 2 << 3 或 8 << 1

6.三元运算符

1.结构:
`(条件表达式)? 表达式1 : 表达式2
2. 说明
① 条件表达式的结果为boolean类型
② 根据条件表达式真或假,决定执行表达式1,还是表达式2. 如果表达式为true,则执行表达式1。
如果表达式为false,则执行表达式2。
③ 表达式1 和表达式2要求是一致的。
④ 三元运算符可以嵌套使用
3. 凡是可以使用三元运算符的地方,都可以改写为if-else 反之,不成立。
4. 如果程序既可以使用三元运算符,又可以使用if-else结构,那么优先选择三元运算符。原因:简洁、执行效率高。

class SanYuanTest {public static void main(String[] args) {//获取两个整数的较大值int m = 12;int n = 5;int max = (m > n)? m : n;System.out.println(max);double num = (m > n)? 2 : 1.0;//(m > n)? 2 : "n大";//编译错误//**************************n = 12;String maxStr = (m > n)? "m大" : ((m == n)? "m和n相等" : "n大");System.out.println(maxStr);//*****************************//获取三个数的最大值int n1 = 12;int n2 = 30;int n3 = -43;int max1 = (n1 > n2)? n1 : n2;int max2 = (max1 > n3)? max1 : n3;System.out.println("三个数中的最大值为:" + max2);//不建议//int max3 = (((n1 > n2)? n1 : n2) > n3)? ((n1 > n2)? n1 : n2) : n3;System.out.println("三个数中的最大值为:" + max3);//该写成if-else:if(m > n){System.out.println(m);}else{System.out.println(n);}}
}

练习1

/*
数字xxx的情况如下:
个位数:
十位数:
百位数:例如:
数字153的情况如下:
个位数:3
十位数:5
百位数:1
*/
class AriExer {public static void main(String[] args) {int num = 187;int bai = num / 100;int shi = num % 100 / 10;//int shi = num / 10 % 10;int ge = num % 10;System.out.println("百位为:" + bai);System.out.println("十位为:" + shi);System.out.println("个位为:" + ge);}
}

流程控制

一.分支结构

1.if-else条件判断结构
1.1.结构

结构一:
if(条件表达式){执行表达式
}结构二:二选一
if(条件表达式){执行表达式1
}else{执行表达式2
}结构三:n选一
if(条件表达式){执行表达式1
}else if(条件表达式){执行表达式2
}else if(条件表达式){执行表达式3
}...
else{执行表达式n
}

1.2.说明:

  1. else 结构是可选的。
  2. 针对于条件表达式:
    如果多个条件表达式之间是“互斥”关系(或没有交集的关系),哪个判断和执行语句声明在上面还是下面,无所谓。
    如果多个条件表达式之间有交集的关系,需要根据实际情况,考虑清楚应该将哪个结构声明在上面。
    如果多个条件表达式之间有包含的关系,通常情况下,需要将范围小的声明在范围大的上面。否则,范围小的就没机会执行了。
  3. if-else结构是可以相互嵌套的。
  4. 如果if-else结构中的执行语句只有一行时,对应的一对{}可以省略的。但是,不建议大家省略。

if练习

class IfTest {public static void main(String[] args) {//举例1int heartBeats = 79;if(heartBeats < 60 || heartBeats > 100){System.out.println("需要做进一步检查");}System.out.println("检查结束");//举例2int age = 23;if(age < 18){System.out.println("你还可以看动画片");}else{System.out.println("你可以看成人电影了");}//举例3if(age < 0){System.out.println("您输入的数据非法");}else if(age < 18){System.out.println("青少年时期");}else if(age < 35){System.out.println("青壮年时期");}else if(age < 60){System.out.println("中年时期");}else if(age < 120){System.out.println("老年时期");}else{System.out.println("你是要成仙啊~~");}}
}

2.switch-case选择结构

2.1结构

switch(表达式){case 常量1:执行语句1;//break;
case 常量2:执行语句2;//break;
...
default:执行语句n;//break;
}

switch练习

class SwitchCaseTest {public static void main(String[] args) {int number = 5;switch(number){case 0:System.out.println("zero");break;case 1:System.out.println("one");break;case 2:System.out.println("two");break;case 3:System.out.println("three");break;default:System.out.println("other");//break;}String season = "summer";switch (season) {case "spring":System.out.println("春暖花开");break;case "summer":System.out.println("夏日炎炎");break;case "autumn":System.out.println("秋高气爽");break;case "winter":System.out.println("冬雪皑皑");break;default:System.out.println("季节输入有误");break;}//**************如下的两种情况都编译不通过*********************//情况一/*boolean isHandsome = true;switch(isHandsome){case true:System.out.println("我好帅啊~~~");break;case false:System.out.println("我好丑啊~~~");break;default:System.out.println("输入有误~~~");}*///情况二/*int age = 10;switch(age){case age > 18:System.out.println("成年了");break;default:System.out.println("未成年");}*/}
}

2.2.说明:
① 根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。
当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构
末尾结束为止。
② break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构
③ switch结构中的表达式,只能是如下的6种数据类型之一:
byte 、short、char、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增)
④ case 之后只能声明常量。不能声明范围。
⑤ break关键字是可选的。
⑥ default:相当于if-else结构中的else.
default结构是可选的,而且位置是灵活的。
3.如果switch-case结构中的多个case的执行语句相同,则可以考虑进行合并。
4.break在switch-case中是可选的

二.循环结构

1.四要素
① 初始化条件
② 循环条件 —>是boolean类型
③ 循环体
④ 迭代条件
说明:通常情况下,循环结束都是因为②中循环条件返回false了。

2.三种循环结构:
2.1 for循环结构

for(①;②;④){③
}
执行过程:① - ② - ③ - ④ - ② - ③ - ④ - ... - ②

for练习

class ForTest {public static void main(String[] args) {/*System.out.println("Hello World!");System.out.println("Hello World!");System.out.println("Hello World!");System.out.println("Hello World!");System.out.println("Hello World!");*/for(int i = 1;i <= 5;i++){//i:1,2,3,4,5System.out.println("Hello World!");}//i:在for循环内有效。出了for循环就失效了。//System.out.println(i);//练习:int num = 1;for(System.out.print('a');num <= 3;System.out.print('c'),num++){System.out.print('b');}//输出结果:abcbcbcSystem.out.println();//例题:遍历100以内的偶数,输出所有偶数的和,输出偶数的个数int sum = 0;//记录所有偶数的和int count = 0;//记录偶数的个数for(int i = 1;i <= 100;i++){if(i % 2 == 0){System.out.println(i);sum += i;count++;}//System.out.println("总和为:" + sum);}System.out.println("总和为:" + sum);System.out.println("个数为:" + count);}
}

2.2 while循环结构

①
while(②){③;④;
}
执行过程:① - ② - ③ - ④ - ② - ③ - ④ - ... - ②

说明:
写while循环千万小心不要丢了迭代条件。一旦丢了,就可能导致死循环!

算法:有限性。

for和while循环总结:

  1. 开发中,基本上我们都会从for、while中进行选择,实现循环结构。
  2. for循环和while循环是可以相互转换的! 区别:for循环和while循环的初始化条件部分的作用范围不同。
  3. 我们写程序,要避免出现死循环。
import java.util.Scanner;class ForWhileTest {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int positiveNumber = 0;//记录正数的个数int negativeNumber = 0;//记录负数的个数for(;;){//while(true){int number = scan.nextInt();//判断number的正负情况if(number > 0){positiveNumber++;}else if(number < 0){negativeNumber++;}else{//一旦执行break,跳出循环break;}}System.out.println("输入的正数个数为:" + positiveNumber);System.out.println("输入的负数个数为:" + negativeNumber);}
}

2.3 do-while循环结构

①
do{③;④;
}while(②);
执行过程:① - ③ - ④ - ② - ③ - ④ - ... - ②

说明:
1.do-while循环至少会执行一次循环体!
2.开发中,使用for和while更多一些。较少使用do-while
3.“无限循环”结构: while(true) 或 for(;

Note2-JAVA基础语法相关推荐

  1. Java基础语法(数组)

    第4天 Java基础语法 今日内容介绍 u 流程控制语句(switch) u 数组 第1章 流程控制语句 1.1 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句 ...

  2. 使用java实现面向对象编程第二章_java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1.java关键字 abstract boolean break byte case catch char class const continue default do d ...

  3. Java基础语法(一)

    Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年正式 ...

  4. Java基础语法初学者了解

    Java语言的特点 简单的面向对象语言 跨平台与解释执行 可以做到一次编译,到处执行. (Java跨平台,Java虚拟机不跨平台) 在具体的机器运行环境中,由Java虚拟机对字节码进行解释执行.通过定 ...

  5. java基础语法(二)--单列模式

    java基础语法(二)--单列模式 /*** 功能:单列模式* @author Administrator**/ public class SingletonTest {public static v ...

  6. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)...

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  7. (31)Java基础语法 --接口

    目录 1.接口的概述 2.接口的定义格式 3.在接口中定义抽象方法 4.定义接口的 实现类 5.接口的使用 接口练习 6.接口的特点 7.一个实现类可以同时实现多个接口 8.接口的继承 9.设计提示 ...

  8. Java基础语法02-流程控制

    Java基础语法2 1 流程控制 1.1 概述 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说,程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程. ...

  9. Java基础语法-数据类型与idea配置

    文章目录 day02 - Java基础语法 1. 注释 使用的技巧 注意点 2. 关键字 2.1 概念 2.2 第一个关键字class 3. 字面量 区分技巧 4. 变量 4.1 什么是变量? 4.2 ...

  10. 1. Java基础语法

    1-- Java概述 2--常用DOS命令 在接触集成开发环境之前,我们需要使用命令行窗口对java程序进行编译和运行,所以需要知道一些常用DOS命令. 1.打开命令行窗口的方式:win + r打开运 ...

最新文章

  1. vue双向绑定原理源码解析
  2. java 绝对路径_java 获取绝对路径
  3. python调用函数示例_python 动态调用函数实例解析
  4. 物联网安全有哪些注意事项
  5. springboot实践1
  6. Nim游戏的一个扩展——51nod 1661 黑板上的游戏+LA 5059 Playing With Stones
  7. 10天确定Python,运行环境(超详细步骤)
  8. Dubbo(十三)dubbo的负载均衡配置策略
  9. oracle number对应java什么类型_JVM系列之数据类型
  10. 重装系统后,腾讯TM2013 “应用程序无法启动,因为程序的并行配置不正确
  11. 3dmax phoenix fd4.0汉化补丁_教你屏蔽 Win10 Flash 删除补丁 - Windows 10
  12. sse java8_Java SSE 服务器推送WEB页面接收数据
  13. 【SQL Server】SQL2005的安装与配置、简单使用
  14. DateUtils解析
  15. jetbrains goland配置go开发环境
  16. kindeditor导入word文档 kindeditor word导入插件
  17. 自定义监控项及告警升级
  18. 更改设置让Cheat Engine搜索安卓模拟器里的数据
  19. CST视图view的操作
  20. 亚裔在澳大利亚难登事业巅峰?会说英语是关键

热门文章

  1. 法国制药级别护肤品牌特碧润2021年将扩大中国市场部署
  2. 宁波网络推广,如何做好品牌传播?
  3. 通信行业的加班套路,到底有多深?
  4. 【进阶二】Python实现VRPTW常见求解算法——差分进化算法(DE)
  5. android动态设置imageview大小,ImageView动态设置宽高
  6. SpringBoot Jar包改造为War包
  7. Python urllib、urllib2、urllib3用法及区别
  8. 携手引领全球电竞消费升级:CGU现场七彩虹NVIDIA访谈
  9. camera曝光和帧率
  10. AppleWatch有什么好用的软件?这6款watch软件让你的Apple Watch更实用