2015-05-23 2 views
0
int a = 0; 
int b = 0; 
int c = 0; 
Scanner sc = new Scanner(System.in); 
for (int i = 0; i < 6; i++) { 
    b = sc.nextInt(); 
    a =+ b; 
    c =+ (a + 1); 
    if (c < 20) { 
     i = 2; 
    } 
} 

Если у меня есть линии, пронумерованные от 0 до 6 внутри цикла, цикл будет , поэтому, если c меньше 20, он повторяет операцию «c = + (a + 1);» пока он не выйдет из цикла с помощью> 20.Как вступить в указанную часть цикла?

Это упрощенный код моей программы, мой графический интерфейс. каждый раз, когда я запускаю код, он зависает.

+0

вопрос остается неясным. Просьба уточнить. Пример поможет. – shruti1810

+1

if (c <20) {} else {break;} – Dien

+0

@ shruti1810 приведенный выше код является примером, я думаю. Мне трудно вступить в операцию внутри цикла. – Nee

ответ

0

Вы можете пометить петлю и сделать break или continue инструкции, но вам необходимо разработать поток, это не представляется возможным перейти в указанную строку, потому что Java не используйте goto инструкции. Этими инструкциями вы можете переключать поток внутри циклов.

myloopTag: 
for (...; ...; ...) { 
    // and you can break current loop by: 
    break; 

    // or specific (outer) loop by 
    break myloopTag; 

    // you can also use 'continue' to go to the start of the loop and increment again 
    continue; 

    // or to 'continue' at a label: 
    continue myloopTag; 
} 
0

Возможно, вы, вероятно, очень новичок в этом языке. Добро пожаловать!

Если я правильно понимаю ваше описание ваших намерений, вы хотите, чтобы ваш код вышел из цикла при c> = 20. На основании вашего описания нумерации линий и тот факт, что у вас есть заявление:

if(c<20){ 
    i=2; 
} 

, кажется, что вы думаете, что итератор я в цикл связан с линией, которая будет выполняться *. Это не тот случай. Итератор i является переменной, которая просто содержит целое число (точно так же, как a, b и c в вашем коде).

Предлагаю вам взглянуть на tutorial on for loops. Возможно, вам будет полезно ознакомиться с другими языковыми особенностями, например, how control flow works (на самом деле это может быть лучше, чем на самом деле).

* Это предположение в своем намерении дополнительно подтверждается вы считая, что есть 6 строк и что ваш цикл доходит до 6.

+0

Более подробно у меня есть цикл, который принимает математические операции и случай переключения, в котором он переводит эти операции для применения сложения или вычитания и т. Д. – Nee

+0

Цикл (int i) - это число операций, которые он читает. Условие также является частью введенных операций, оно также находится внутри корпуса коммутатора. Поэтому всякий раз, когда пользователь вводит это условие и число (например, j), что цикл должен повторяться, программа должна принимать j и выравнивает ее с i, но она зависает. Я хочу, чтобы он переместился в ту часть цикла, где пользователь определил правильное условие. – Nee

+0

Честно говоря, я не понимаю всех деталей того, что вы пытаетесь выполнить. Если у вас возникли проблемы с замораживанием программы или вы не знаете, почему она выполняет определенные действия в определенное время, вам может потребоваться посмотреть вашу программу по очереди, когда она выполняется. Есть много инструментов, которые вы можете использовать для этого (называемые IDE), в которых есть отладчики, включенные в них, которые позволяют вам «шаг за шагом» переходить по строкам при просмотре значений переменных и другой полезной информации. Eclipse - популярный инструмент, который вы могли бы использовать для этого. Посмотрите [здесь] (http://www.vogella.com/tutorials/EclipseDebugging/article.html). – augray

Смежные вопросы