关于变量公式在循环体外的错误

 1 import java.util.Scanner;
 2 public class TestArray {
 3
 4     public static void main(String[] args){
 5         int [] array = new int[]{13,24,35,56,77,89,90};
 6         Scanner input = new Scanner(System.in);
 7         int i = input.nextInt();
 8         int start = 0;
 9         int end = array.length-1;
10         int middle ;//此处middle,只申明变量,不赋值
11         int index = -1;
12         while(start<end){
13             middle= (start+end)/2;//暂不清楚为什么只能在循环体内写入此公式,而不能在循环体外。
14             if(i==array[middle]){
15                 index = middle+1;
16                 break;
17             }
18             if(i > array[middle]){
19                 start = middle+1;
20             }
21             if(i < array[middle]){
22                 end = middle-1;
23             }
24         }
25
26         if(index == -1){
27             System.out.println("没找到");
28         }else{
29             System.out.println("在第"+index+"位");
30         }
31     }
32 }
时间: 2024-11-25 19:41:31

关于变量公式在循环体外的错误的相关文章

【Javascript】: for循环中定义的变量在for循环体外也有效

for循环中定义的变量在for循环体外也有效 <script> (function(){ var a = 111; for(var i=0;i<5;i++){ var carl = 111; console.log(i); } alert("carl is:"+carl); })(); </script> 结果: carl is:111

变量声明在循环体内还是循环体外的争论

(1) for (int i = 0; i < 10000; ++i) { Object obj = new Object(); System.out.println("obj= "+ obj); } 应改成(2) Object obj = null; for (int i = 0; i < 10000; ++i) { obj = new Object(); System.out.println("obj= "+ obj); } 今天想对"变量

JAVA变量声明在循环体内还是循环体外

(1) for (int i = 0; i < 10000; ++i) { Object obj = new Object(); System.out.println("obj= "+ obj); } (2) Object obj = null; for (int i = 0; i < 10000; ++i) { obj = new Object(); System.out.println("obj= "+ obj); } 在循环体外,始终都是这一个对象

关于变量在for循环内外定义的思考

在c#或java里面,我们通常会这样写for循环: for(int i = 0;i<10;i++) { Console.WriteLine(i); } 前一阵子,我突发奇想,如果按照下面这样写,会不会比上面的运行效率高一些: int i = 0; for(; i<10 ;i++) { Console.WriteLine(i); } 因为我觉得最上面的那种方式,每次循环都会声明一个变量,说不定会影响效率,于是百度了一下,发现其他人也有这个疑惑,特意百度了一些资料,在此做个综合. 首先是在内层循环

[转]oracle存储过程、声明变量、for循环

oracle存储过程.声明变量.for循环 1.创建存储过程 create or replace procedure test(var_name_1 in type,var_name_2 out type) as --声明变量(变量名 变量类型) begin --存储过程的执行体 end test; 打印出输入的时间信息 E.g: create or replace procedure test(workDate in Date) is begin dbms_output.putline(&ap

oracle存储过程、声明变量、for循环|转|

oracle存储过程.声明变量.for循环 1.创建存储过程 create or replace procedure test(var_name_1 in type,var_name_2 out type) as --声明变量(变量名 变量类型) begin --存储过程的执行体 end test; 打印出输入的时间信息 E.g: create or replace procedure test(workDate in Date) is begin dbms_output.putline(&ap

oracle存储过程、声明变量、for循环

oracle存储过程.声明变量.for循环  1.创建存储过程 create or replace procedure test(var_name_1 in type,var_name_2 out type) as --声明变量(变量名 变量类型) begin --存储过程的执行体 end test; 打印出输入的时间信息 E.g: create or replace procedure test(workDate in Date) is begin dbms_output.putline(&a

Java中用FileInputStream和FileOutputStream读写txt文件,文件内容乱码的问题,另附循环代码小错误

乱码问题大概就是编码格式不一样,搜了很多都是这么说的,修改编码解决乱码问题链接: https://blog.csdn.net/weixin_42496466/article/details/81189774 注意:记得要修改读的txt文件的编码方式,原理可能理解有偏差,但我一定要修改才能读到正确的内容. 参考链接:https://blog.csdn.net/Blinstar/article/details/76268722 循环写小错误: 我的代码: FileInputStream fis=ne

c#变量在for循环内声明与外的区别

1.这样写是错误的 #region 有这样的一个字符串类型的数组{"老杨","老苏","老马","老牛"};要求 变换成这样一个字符串:老杨|老苏|老马|老牛 string[] str = { "老杨", "老苏", "老马", "老牛" }; for (int i = 0; i < str.Length - 1; i++) { string