2015-05-07 2 views
0

Можем ли мы писать так, используя тернарный оператор? Когда я писал так, я получаю ошибку, пожалуйста, помогите мне. Как я могу написать правильный синтаксис?Как написать вложенное условие с помощью тернарного оператора в java?

(str.charAt(j)==c.charAt(k++)) ? break: k<len1 ? continue:break L1; 
+0

что ошибка? – underdog

+0

Что вы пытаетесь сделать с 'break L1'? – Ian2thedv

+0

@underdog ошибка является незаконным началом выражения, а не выражением. – usr134

ответ

0

троичный оператор является частью выражения и его компоненты должны быть выражения а, а не заявления. В этом случае вы можете легко использовать if stamement:

if (str.charAt(j)==c.charAt(k++)) 
    break; 
else if (k<len1) 
    continue; 
else 
    break L1; 

Или еще проще:

if (str.charAt(j)==c.charAt(k++)) 
    break; 
if (k<len1) 
    continue; 
break L1; 
+2

¿Может ли downvoter оставить комментарий? Это кажется мне совершенно верным ответом! –

+2

@WaiHaLee Согласитесь, но если вы видите хороший вполне правильный ответ, и вы даже достаточно внимательны, чтобы прокомментировать кого-то, кто его запустил, тогда * почему бы вам не повысить его самостоятельно? * –

+0

@ErwinBolwidt - если бы я знал больше о Java I бы. Я основывал свой комментарий на знании C#. –

0

break & продолжают всегда используется в цикле; Вы можете перепроверить свою логику.

Если вы хотите, чтобы написать вложенную тройной оператор общий синтаксис будет

boolean x=("a".equals("b"))? false: (("b".equals("c"))?true:false); 
System.out.println(x); 

Выход

false 
+0

Благодарим вас за хорошее объяснение – usr134

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