Objective-C:
NSString to NSData:
NSString* str= @"string";
NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding];
NSData to NSString:
NSString* newStr = [[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding];
Swift:
Строка в данные:
var testString = "string"
var somedata = testString.data(using: String.Encoding.utf8)
Данные в строку:
var backToString = String(data: somedata!, encoding: String.Encoding.utf8) as String!
Попробуйте следующее:
for ($i=0, $k=10; $i<=10 ; $i++, $k--) {
echo "Var " . $i . " is " . $k . "<br>";
}
Две переменные $ i
и $ k
инициализируются с помощью 0
и 10
соответственно. В конце каждого цикла $ i
будет увеличиваться на единицу ( $ i ++
), а $ k
уменьшается на единицу ( $ k--
). Так $ i
будет иметь значения 0, 1,…, 10 и $ k
значения 10, 9,…, 0.
Если, как выглядит ваш код, у вас работают два значения в противоположном направлении вы можете просто вычесть:
echo "Var " . $i . " is " . 10 - $i . "<br>";
Но я думаю, это не совсем то, что вам нужно? Также будьте осторожны с предложенным оператором запятой .
Чтобы расширить другие (правильные) ответы, то, что вы делали, называется вложенными циклами. Это означает, что на каждой итерации внешнего цикла (первой) вы завершали весь внутренний цикл. Это означает, что вместо 11 выходов вы получите 11 + 11 + 11 + ... = 11 * 11
выходов
Вам не следует использовать два цикла for для того, чего вы хотите достичь, поскольку вы выполняете цикл 121 раз (11x11). На самом деле вам нужно просто объявить счетчик вне цикла, который отслеживает j, а затем уменьшить j внутри цикла.
Редактировать: Спасибо Гамбо за то, что уловил включение для меня.