Java程序语言中有三种控制结构:顺序结构、选择结构、循环结构,而for是循环结构中的一种,也即for循环是程序设计的一种控制结构。而你用这些控制结构编写的程序就是要解决一些问题,计算机读取你编写的程序代码,执行你想要的操作,显示出你要的结果,那些逻辑题就是这样解决的。
这些网址有50道Java逻辑题:
没有答案,自己可以根据提示去解决。
至于 老师说外层for控制行,内层for控制列,这是用一个二维的表结构来形象的描述这种for循环,而行和列的说法我们常见于表格中,在其他的业务逻辑中也许换个说法更合适些。
像冒泡排序,第一个for循环就是控制循环次数,第二for循环就是控制逻辑比较。详情见
下面给出我的一个示例,供参考:
import java。util。Random;
public class BubbleSortDemo {
public static final String ASC = "asc";
public static final String DESC = "desc";
public static void main(String[] args) {
int[] dataArr = createIntArray();
//int[] dataArr = {9,8,7,6,5,4,3,2,1,0};//此数组能完整显示排序的过程
display(dataArr);
bubbleSort(dataArr,"asc");
}
/**
* 随机生成10个1000以内的整数存入数组并返回数组
* @return int[] 返回的整数数组
*/
public static int[] createIntArray(){
int[] results = new int[10];
Random random = new Random();
for(int i = 0 ; i dataArr。
length)return;
if(indexB dataArr。length)return;
int temp = dataArr[indexA];
dataArr[indexA] = dataArr[indexB];
dataArr[indexB] = temp;
}
/**
* 冒泡排序算法
* 方法:相邻两元素进行比较,如有需要则进行交换,每完成一次循环就将最大元素(升序)或最小元素(降序)排在最后
* @param dataArr 待排序的数组
* @param sortType 排序类型
*/
public static void bubbleSort(int[] dataArr, String sortType){
if(dataArr == null)return;
if(sortType。
equals(ASC)){
for(int i = 1; i dataArr[j+1]){
swap(dataArr, j, (j+1));
isExchanged = true;
}
}
if(!isExchanged){
break;
}
display(dataArr, i);
}
}else if(sortType。
equals(DESC)){
for(int i = 1; i < dataArr。length; i++){
boolean isExchanged = false;
for(int j = 0; j < (dataArr。
length - i); j++){
if(dataArr[j] < dataArr[j+1]){
swap(dataArr, j, (j+1));
isExchanged = true;
}
}
if(!isExchanged){
break;
}
display(dataArr, i);
}
}else{
intln("输入的排序类型错误!");
}
}
/**
* 打印出数组元素
* @param dataArr 待排序的数组
* @param count 排序次数
*/
public static void display(int[] dataArr, int count){
if(dataArr == null)return;
int("第"+count+"轮: ");
for(int data : dataArr){
int(data + " ");
}
intln();
}
public static void display(int[] dataArr){
if(dataArr == null)return;
for(int data : dataArr){
int(data + " ");
}
intln();
}
}。
全部