当前位置:  编程技术>综合
本页文章导读:
    ▪Rookie零基础学java(七)之流程控制      1.if条件语句: 一个if语句由保留字if、布尔表达式和位于其后的语句构成,其基本语法如下: if(表达式){方法体}else if(表达式){方法体}else{方法体} 下面用代码演示。 if (a > 3) 条件成功的方.........
    ▪More Effective C++读书笔记4      Item 4:避免无用的缺省构造函数   没有缺省构造函数会导致: 1.无法创建该类的数组形式。 2.无法在许多基于模板的容器类里使用。  设计虚基类时所面临的要提供缺省构造.........
    ▪More Effective C++读书笔记3      Item 3: 不要对数组使用多态         语言规范中说通过一个基类指针来删除一个含有派生类对象的数组,结果将是不确定的。 class BST { ... }; class BalancedBST: public BST { ...........

[1]Rookie零基础学java(七)之流程控制
    来源: 互联网  发布时间: 2013-11-05

1.if条件语句:

一个if语句由保留字if、布尔表达式和位于其后的语句构成,其基本语法如下:
if(表达式){方法体}else if(表达式){方法体}else{方法体}
下面用代码演示。
if (a > 3)
条件成功的方法体
语法解释:
if语句的执行条件是,当表达式值为true时,执行方法体的部分。
如果表达式值为false,执行else if的部分或else部分的方法体。

if语句的用法有好几种,下面列举if语句的几种形式。
简写形式:if ...
一般形式:if ... else
完整形式:if ... else if ... else

 例1:

 

public class Test
{
	public static void main(String args[])
	{
		int n = 7;
		if (n > 3)
			System.out.println("variable n > 3");
	}
}


例2:

public class Test01
{
	public static void main(String args[])
	{
		int i = 3;
		if (i > 5)
		{
			System.out.println("variable i > 5");
		}
		else if (i > 4)
		{
			System.out.println("variable i < 4");
		}
		else
		{
			System.out.println("others");
		}
	}
	
}


 

2.switch语句:

switch语句和if-else-if语句相似,但是switch要比if-else-if语句要优越,它是根据条件表达式的值来判断执行的程序语句。

switch分支语句要比if语句复杂得多。但当判断的条件很多时,switch分支语句要比if语句要方便很多。

switch分支语句的表达式的使用有一定的条件,不是什么类型都能使用的。一般能使用的条件是具体的整型数值和一些有顺序的数列。也就是switch表达式中只能是整数类型和有顺序的数列。

例1:

public class Test02
{
	public static void main(String args[])
	{
		int i = 3;
		char c = 4;

		switch(i)
		{
		case 3:
		{
			System.out.println("The executive branch is case 3 branch");
			break;	
		}
		default:
			System.out.println("other branch");
		}

		switch (c)
		{
		case 4:
			System.out.println("The executive branch is case 4 branch");
			break;	
		default:
			System.out.println("others branch");
		}
	}
}

 

 例2:

//定义一个枚举类型
enum testEnum{one, two, three, four}
//测试Switch分支语句
public class testSwitch3
{
	public static void main(String args[])
	{	
		//switch分支语句,表达式为一个枚举类型
		switch(testEnum.two)
		{
			//具体的条件分支
			case one:
			{
				System.out.println("所执行的分支是case one分支");
				break;
			}
			case two:
			{
				System.out.println("所执行的分支是case two分支");
				break;
			}
			case three:
			{
				System.out.println("所执行的分支是case three分支");
				break;
			}
			case four:
			{
				System.out.println("所执行的分支是case four分支");
				break;
			}
			default:
				System.out.println("其他分支语句");
		}
	}
}

 

3.while循环语句:

while循环时Java中的一种循环形式,就是先进行判断再进行循环的语句。通过判断表达式的值,来决定具体的循环次数。下面先介绍while循环语句的语法并举例说明。

所谓do...while循环语句,就是先进行循环,再进行表达式的判断,如果表达式不成立就退出循环。有时候即使表达式的值为假,也需要执行一遍循环体的内容,这时就需要使用到do…while循环。下面先介绍do...while循环语句的语法并举例说明。

例1:

public class testWhile
{
	public static void main(String args[])
	{
		int i = 0;
		//当整型i小于3的时候结果循环
		while (i < 3)
		{
			System.out.println(i);
			//每次递增整型变量i,在下次循环的时候进行判断.
		i++;
		}
	}
}


 

例2:

//testWhile2类,所描述的是一个9*9乘法表
public class testWhile2
{
	public static void main(String args[])
	{
		//定义整型变量
		int i = 9; 
		int j = 9; 
		//当变量i大于或等于1的时候执行循环
		while(i >= 1)
		{ 
			while((j <= i) && (j > 0))
			{ 
				System.out.print(i + "*" + j + "=" + j * j +" "); 
				j--; 
			} 
			System.out.println(" "); 
			i--; 
			//把每次循环后的j值赋值给i
			j = i; 
		} 
	}
}


 

4.for循环语句:

所谓for循环语句,就是明确了循环的次数,再进行循环的。如果已经知道需要执行语句块的次数,就需要使用for循环。下面先介绍for循环语句的语法并举例说明。

for循环语句通过判断表达式的成立与否,来决定循环的次数。其基本语法如下:
for(变量初始化,表达式,循环表达式)
{
方法体
}

例1:9*9乘法表格:

//testFor2类,所描述的是一个9*9乘法表
public class testFor2
{
	public static void main(String args[])
	{
		for (int i = 1; i < 10; i++)
		{
			for (int j = 1; j < 10; j++)
			{
				if (j <= i)
				{
					System.out.print(i + "*" + j + "=" + (i * j) + " ");
				}
			}
			System.out.println(" ");
		}
	}
}

 

例2:下面介绍for循环语句的其他用法,并解释其含义。
【代码解析】本程序使用到了多个for循环,读者应该非常细心地分析该程序,分清每一个for循环的作用。对该程序全面了解后,就可以自己来编写一个输出倒三角的程序。如果读者能够写出这个程序,证明已经把for循环彻底掌握了。

public class testFor3
{
	public static void main(String args[])
	{
		int i;
		int j;
		int input = 10;
		System.out.println("正三角:");
		for (i = 1; i <= input; i++)
		{
			for (j = i; j < input; j++) 
		  	{
				System.out.print(" ");
		 	}
		  	//打印左半边三角
	    		for (j = i; j >= 1; j--) 
	    		{
	    			if (j >= 10)
	    				System.out.print("*");//大于9的数字用*符号表示
				else
				  	System.out.print(j);//如果要全部打印*号,此处将j用"*"代替,下边程序做相同改动。
		  	}
			//打印右半边三角
		  	for (j = 2; j <= i; j++) 
		  	{
		  		if (j >= 10)
		  			System.out.print("*");
				else
					System.out.print(j);
		  	}
		  	System.out.println();
		}
	}
}

 

 

 


//testFor2类,所描述的是一个9*9乘法表
public class testFor2
{
	public static void main(String args[])
	{
		for (int i = 1; i < 10; i++)
		{
			for (int j = 1; j < 10; j++)
			{
				if (j <= i)
				{
					System.out.print(i + "*" + j + "=" + (i * j) + " ");
				}
			}
			System.out.println(" ");
		}
	}
}


 



 

作者:lujinjian605894472 发表于2013-1-5 9:20:48 原文链接
阅读:38 评论:0 查看评论

    
[2]More Effective C++读书笔记4
    来源: 互联网  发布时间: 2013-11-05

Item 4:避免无用的缺省构造函数  


没有缺省构造函数会导致:

1.无法创建该类的数组形式。

2.无法在许多基于模板的容器类里使用。 


设计虚基类时所面临的要提供缺省构造函数还是不提供缺省构造函数的两难决策:

1.不提供缺省构造函数的虚基类,很难与其进行合作。因为几乎所有的派生类在实例化时都必须给虚基类构造函数提供参数。

2.提供无意义的缺省构造函数也会影响类的工作效率。 

作者:goof 发表于2013-1-5 9:43:10 原文链接
阅读:0 评论:0 查看评论

    
[3]More Effective C++读书笔记3
    来源: 互联网  发布时间: 2013-11-05
Item 3: 不要对数组使用多态

        语言规范中说通过一个基类指针来删除一个含有派生类对象的数组,结果将是不确定的。

class BST { ... };
class BalancedBST: public BST { ... };

void printBSTArray(ostream& s,const BST array[], int numElements)
{
    for (int i = 0; i < numElements; )
    {
        s << array[i]; //假设 BST 类重载了操作符<<
    }
} 


         编译器原先已经假设数组中元素与 BST 对象的大小一致,但是现在数组中每一个对象大小却与 BalancedBST 一致。派生类的长度通常都比基类要长。我们料想 BalancedBST 对象长度的比 BST 长。如果如此的话,printBSTArray 函数生成的指针算法将是错误的,没有人知道如果用 BalancedBST 数组来执行 printBSTArray 函数将会发生什么样的后果。不论是什么后果都是令人不愉快的。


        值得注意的是如果你不从一个具体类(concrete classes) (例如 BST)派生出另一个具体类(例如 BalancedBST),那么你就不太可能犯这种使用多态性数组的错误。

作者:goof 发表于2013-1-5 9:42:59 原文链接
阅读:0 评论:0 查看评论

    
最新技术文章:
▪error while loading shared libraries的解決方法    ▪版本控制的极佳实践    ▪安装多个jdk,多个tomcat版本的冲突问题
▪简单选择排序算法    ▪国外 Android资源大集合 和个人学习android收藏    ▪.NET MVC 给loading数据加 ajax 等待loading效果
▪http代理工作原理(3)    ▪关注细节-TWaver Android    ▪Spring怎样把Bean实例暴露出来?
▪java写入excel2007的操作    ▪http代理工作原理(1)    ▪浅谈三层架构
▪http代理工作原理(2)    ▪解析三层架构……如何分层?    ▪linux PS命令
▪secureMRT Linux命令汉字出现乱码    ▪把C++类成员方法直接作为线程回调函数    ▪weak-and算法原理演示(wand)
▪53个要点提高PHP编程效率    ▪linux僵尸进程    ▪java 序列化到mysql数据库中
▪利用ndk编译ffmpeg    ▪活用CSS巧妙解决超长文本内容显示问题    ▪通过DBMS_RANDOM得到随机
▪CodeSmith 使用教程(8): CodeTemplate对象    ▪android4.0 进程回收机制    ▪仿天猫首页-产品分类
▪从Samples中入门IOS开发(四)------ 基于socket的...    ▪工作趣事 之 重装服务器后的网站不能正常访...    ▪java序列化学习笔记
▪Office 2010下VBA Addressof的应用    ▪一起来学ASP.NET Ajax(二)之初识ASP.NET Ajax    ▪更改CentOS yum 源为163的源
▪ORACLE 常用表达式    ▪记录一下,AS3反射功能的实现方法    ▪u盘文件系统问题
▪java设计模式-观察者模式初探    ▪MANIFEST.MF格式总结    ▪Android 4.2 Wifi Display核心分析 (一)
▪Perl 正则表达式 记忆方法    ▪.NET MVC 给loading数据加 ajax 等待laoding效果    ▪java 类之访问权限
▪extjs在myeclipse提示    ▪xml不提示问题    ▪Android应用程序运行的性能设计
▪sharepoint 2010 自定义列表启用版本记录控制 如...    ▪解决UIScrollView截获touch事件的一个极其简单有...    ▪Chain of Responsibility -- 责任链模式
▪运行skyeye缺少libbfd-2.18.50.0.2.20071001.so问题    ▪sharepoint 2010 使用sharepoint脚本STSNavigate方法实...    ▪让javascript显原型!
▪kohana基本安装配置    ▪MVVM开发模式实例解析    ▪sharepoint 2010 设置pdf文件在浏览器中访问
▪spring+hibernate+事务    ▪MyEclipse中文乱码,编码格式设置,文件编码格...    ▪struts+spring+hibernate用jquery实现数据分页异步加...
▪windows平台c++开发"麻烦"总结    ▪Android Wifi几点    ▪Myeclipse中JDBC连接池的配置
▪优化后的冒泡排序算法    ▪elasticsearch RESTful搜索引擎-(java jest 使用[入门])...    ▪MyEclipse下安装SVN插件SubEclipse的方法
▪100个windows平台C++开发错误之七编程    ▪串口转以太网模块WIZ140SR/WIZ145SR 数据手册(版...    ▪初识XML(三)Schema
▪Deep Copy VS Shallow Copy    ▪iphone游戏开发之cocos2d (七) 自定义精灵类,实...    ▪100个windows平台C++开发错误之八编程
▪C++程序的内存布局    ▪将不确定变为确定系列~Linq的批量操作靠的住...    ▪DIV始终保持在浏览器中央,兼容各浏览器版本
▪Activity生命周期管理之三——Stopping或者Restarti...    ▪《C语言参悟之旅》-读书笔记(八)    ▪C++函数参数小结
▪android Content Provider详解九    ▪简单的图片无缝滚动效果    ▪required artifact is missing.
▪c++编程风格----读书笔记(1)    ▪codeforces round 160    ▪【Visual C++】游戏开发笔记四十 浅墨DirectX教程...
▪【D3D11游戏编程】学习笔记十八:模板缓冲区...    ▪codeforces 70D 动态凸包    ▪c++编程风格----读书笔记(2)
▪Android窗口管理服务WindowManagerService计算Activity...    ▪keytool 错误: java.io.FileNotFoundException: MyAndroidKey....    ▪《HTTP权威指南》读书笔记---缓存
▪markdown    ▪[设计模式]总结    ▪网站用户行为分析在用户市场领域的应用
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3