Java语言基础(二)

Java语言基础(二)

表达式和运算符:

算术运算符:

元代表多少个操作数,一元表示一个操作数;

一元运算符:++自增(只能是变量),++a等价于a = a+ 1;
++a 与 a++ 有区别: ++a 先自增 在运算 a++ 先运算 在自增

实操: int a = 5;
int b = ++a + ++a + a++ + a++ + ++a; 输出 a 、b 的值;

+:
1、如果+号两边都是数字,计算功能
2、如果+号两边只要有一边是非数字,连接功能

Infinity 正无穷大, NaN 非数 not a number
%: 取模,返回两个操作数整除后的余数,注意: 整形对0或者0.0取膜,得到的数是非数 NAN;任何数对比他本身大的数取膜时,得到的结果就是他本身

实操: 输入一个四位数,求该四位数的个位、十位、百位及千位之和;

关系运算符:

判断两个或者多个表达式之间的关系是否成立,返回结果:true/false
<,>,>=,<=,!=,==

逻辑运算符:

与:并且(&&),短路与
(exp1 && exp2) 4> 3 && ‘c’ > ‘a’
exp1 == true, exp2 == true ----->true
exp1 == true, exp2 == false ----->false
exp1 == false, 不计算exp2的值 ----->false

&:逻辑与
(exp1 & exp2)
exp1 == true, exp2 == true ----->true
exp1 == true, exp2 == false ----->false
exp1 == false, 计算exp2的值 ----->false

或:或者(||),短路或
(exp1 || exp2)
exp1 == false, exp2 == true ------>true
exp1 == false, exp2 == false------>false
exp1 == true, 不计算exp2的值------>true

|:逻辑或:有一个结果为true,那么最终的计算结果为true否则为false
(exp1 | exp2)
exp1 == false, exp2 == true ------>true
exp1 == false, exp2 == false------>false
exp1 == true, 计算exp2的值-------->true

按位或 | 按位与 & 两边接数字时首先得把两边的十进制数字转换为二进制

运算规则:
0|0=0;0|1=1;1|0=1;1|1=1;
0&0=0;0&1=0;1&0=0;1&1=1;

异或:^ 当两个表达式结果不同返回true

赋值运算符:从右向左执行运算的,=左边只能是变量

条件运算符:(三目运算符)

变量 = exp1 ? exp2 : exp3;

注意!!!
1.exp1的结果为true,则变量的值为 exp2 否则为 exp3;
2.变量的数据类型必须与exp2、exp3的值的数据类型相同

控制流语句

1、判断语句:

if
语法:if(条件判断){
code;
}

if…else
语法:if(condition){
code1;
}else{
code2;
}
if…else if…else if…else
语法:if(condition1){
code1;
}else if(condition2){
code2;
}else if(condition3){
code3;
}else{
code4;
}

2、switch分支语句

数据类型 变量名 = 变量值;
语法:switch(变量名){
case 值1:code1; break;
case 值2:code2; break;
case 值3:code3; break;
default:code4; break;
}

注意!!!
此数据类型只能为:byte、short、char、int ,JDK1.7版本后 String(字符串)也适用于switch;

实操:
1、从控制台输入星期(1-7),如果是输入的1-5,打印工作愉快,如果输入的是6或者7,打印周末愉快,如果输入的不是1-7之间的数字,则打印输入错误!(用if…else if…else if…else和switch实现);
2、陆续输入三个整数,运用条件运算符来求出这三个数中的最大数,最小数;

附源码如下:

import java.util.Scanner;

public class Dome1 {

public static void main(String[] ages) {

	for (int i = 1; i <= 5; i++) { // 控制行
		for (int j = 1; j <= 5 - i; j++) { // 控制列
			System.out.print(" ");
		}
		for (int k = i; k >= 1; k--) { // 控制数字
			System.out.print(k);
		}
		for (int num = 2; num <= i; num++) { // 控制后数字
			System.out.print(num);
		}
		System.out.println(); // 自行换行
	}

	// 获取个位十位百位千位的方法
	Scanner sc = new Scanner(System.in);
	int num = sc.nextInt();
	int he;
	int qianwei = num / 1000;
	int baiwei = num % 1000 / 100;
	int shiwei = num % 100 / 10;
	int gewei = num % 10;
	he = qianwei + baiwei + shiwei + gewei;
	System.out.println("和为:" + he);

	/*
	 * 陆续输入三个整数,运用条件运算符来求出这三个数中的最大数,最小数
	 */
	Scanner sc2 = new Scanner(System.in);
	int i = sc2.nextInt();
	int j = sc2.nextInt();
	int k = sc2.nextInt();
	int max = i > j ? (i > k ? i : k) : (j > k ? j : k);
	System.out.println(max);
	int min = i > j ? (j > k ? k : j) : (i > k ? k : i);
	System.out.println(min);

	int n = 7;
	int m = 2;
	int k2 = ++n + m-- + (++m - n-- + m++) + ++n;
	// 求 n , m , k的值
	n = 8;
	m = 3;
	k2 = 14;

	// 1268 & 102 45 | 17
	System.out.println(1268 & 102); // 100
	System.out.println(45 | 17); // 61
}

}

好了,我们Java语言基础(二)的分享就到这里结束了,希望大家努力学习!!!

谢谢大家的欣赏与关注!!!

已标记关键词 清除标记
<span style="color:#404040;">1.算法是程序的灵魂,优秀的程序在对海量数据处理时,依然保持高速计算,就需要高效的数据结构和算法支撑。</span><br /><br /><span style="color:#404040;">2.网上数据结构和算法的课程不少,但存在两个问题:</span><br /><br /><span style="color:#404040;">1)授课方式单一,大多是照着代码念一遍,数据结构和算法本身就比较难理解,对基础好的学员来说,还好一点,对基础不好的学生来说,基本上就是听天书了</span><br /><span style="color:#404040;">2)说是讲数据结构和算法,但大多是挂羊头卖狗肉,算法讲的很少。 本课程针对上述问题,有针对性的进行了升级 </span><br /><span style="color:#404040;">3)授课方式采用图解+算法游戏的方式,让课程生动有趣好理解 </span><br /><span style="color:#404040;">4)系统全面的讲解了数据结构和算法, 除常用数据结构和算法外,还包括程序员常用10大算法:分查找算法(非递归)、分治算法、动态规划算法、KMP算法、贪心算法、普里姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法、马踏棋盘算法。可以解决面试遇到的最短路径、最小生成树、最小连通图、动态规划等问题及衍生出的面试题,让你秒杀其他面试小伙伴</span><br /><br /><span style="color:#404040;">3.如果你不想永远都是代码工人,就需要花时间来研究下数据结构和算法。</span><br /><br /><span style="color:#404040;">教程内容:</span><br /><span style="color:#404040;">本教程是使用Java来讲解数据结构和算法,考虑到数据结构和算法较难,授课采用图解加算法游戏的方式。内容包括: 稀疏数组、单向队列、环形队列、单向链表、双向链表、环形链表、约瑟夫问题、栈、前缀、中缀、后缀表达式、中缀表达式转换为后缀表达式、递归与回溯、迷宫问题、八皇后问题、算法的时间复杂度、冒泡排序、选择排序、插入排序、快速排序、归并排序、希尔排序、基数排序(桶排序)、堆排序、排序速度分析、分查找、插值查找、斐波那契查找、散列、哈希表、叉树、叉树与数组转换、叉排序树(BST)、AVL树、线索叉树、赫夫曼树、赫夫曼编码、多路查找树(B树B+树和B*树)、图、图的DFS算法和BFS、程序员常用10大算法、分查找算法(非递归)、分治算法、动态规划算法、KMP算法、贪心算法、普里姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法马踏棋盘算法。</span><br /><br /><span style="color:#404040;">学习目标:</span><br /><span style="color:#404040;">通过学习,学员能掌握主流数据结构和算法的实现机制,开阔编程思路,提高优化程序的能力。</span>
相关推荐
<p> <b><span style="font-size:14px;"></span><span style="font-size:14px;background-color:#FFE500;">【Java面试宝典】</span></b><br /> <span style="font-size:14px;">1、68讲视频课,500道大厂Java常见面试题+100个Java面试技巧与答题公式+10万字核心知识解析+授课老师1对1面试指导+无限次回放</span><br /> <span style="font-size:14px;">2、这门课程基于胡书敏老师8年Java面试经验,调研近百家互联网公司及面试官的问题打造而成,从筛选简历和面试官角度,给出能帮助候选人能面试成功的面试技巧。</span><br /> <span style="font-size:14px;">3、通过学习这门课程,你能系统掌握Java核心、数据库、Java框架、分布式组件、Java简历准备、面试实战技巧等面试必考知识点。</span><br /> <span style="font-size:14px;">4、知识点+项目经验案例,每一个都能做为面试的作品展现。</span><br /> <span style="font-size:14px;">5、本课程已经在线下的培训课程中经过实际检验,老师每次培训结束后,都能帮助同学们运用面试技巧,成功找到更好的工作。</span><br /> <br /> <span style="font-size:14px;background-color:#FFE500;"><b>【超人气讲师】</b></span><br /> <span style="font-size:14px;">胡书敏 | 10年大厂工作经验,8年Java面试官经验,5年线下Java职业培训经验,5年架构师经验</span><br /> <br /> <span style="font-size:14px;background-color:#FFE500;"><b>【报名须知】</b></span><br /> <span style="font-size:14px;">上课模式是什么?</span><br /> <span style="font-size:14px;">课程采取录播模式,课程永久有效,可无限次观看</span><br /> <span style="font-size:14px;">课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化</span><br /> <br /> <br /> <span style="font-size:14px;background-color:#FFE500;"><strong>如何开始学习?</strong></span><br /> <span style="font-size:14px;">PC端:报名成功后可以直接进入课程学习</span><br /> <span style="font-size:14px;">移动端:<span style="font-family:Helvetica;font-size:14px;background-color:#FFFFFF;">CSDN 学院APP(注意不是CSDN APP哦)</span></span> </p>
<span style="color:#404040;">本教程特点:</span><br /><span style="color:#404040;">1.更适合零基础学员:</span><br /><span style="color:#404040;">·自Java语言起源始,循序渐进,知识点剖析细致且每章配备大量随堂练习,让你步步为营,学得透彻、练得明白</span><br /><span style="color:#404040;">·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅出,迅速让你把握问题本质,四两拨千斤</span><br /><br /><span style="color:#404040;">2.课程内容推陈出新:</span><br /><span style="color:#404040;">·</span><strong>基于JDK 11</strong><span style="color:#404040;">,将Java8、Java9、Java10、Java11新特性一网打尽</span><br /><span style="color:#404040;">·课程中,</span><strong>Eclipse</strong><span style="color:#404040;">和</span><strong>IDEA</strong><span style="color:#404040;">这两种企业一线开发环境都使用到了</span><br /><br /><span style="color:#404040;">3.技术讲解更深入、更全面:</span><br /><span style="color:#404040;">·课程共30天,715个知识视频小节,涉及主流Java使用的方方面面,全而不冗余</span><br /><span style="color:#404040;">·全程内容涵盖</span><strong>数据结构、设计模式、JVM</strong><span style="color:#404040;">内存结构等深度技术</span><br /><span style="color:#404040;">·企业级笔试面试题目深入源码级讲解,拒绝死记硬背</span><br /><br /><span style="color:#404040;">4.代码量更大、案例更丰富、更贴近实战:</span><br /><span style="color:#404040;">·Java语言基础阶段:</span><strong>12720</strong><span style="color:#404040;">行代码,Java语言高级阶段:</span><strong>11684</strong><span style="color:#404040;">行代码</span><br /><span style="color:#404040;">·课堂实战项目</span><strong>3套</strong><span style="color:#404040;">,课后实战项目</span><strong>2套</strong><br /><span style="color:#404040;">·近百道企业面试真题精讲精练、极具实战性</span>
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页